[toc]
Docker部署 安装Docker 使用清华源:https://mirrors.tuna.tsinghua.edu.cn/
1 2 3 4 5 6 7 8 9 10 11 12 yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo yum install -y docker-ce
启动Docker 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 docker version docker version Client: Docker Engine - Community Version: 24.0.2 API version: 1.43 Go version: go1.20.4 Git commit: cb74dfc Built: Thu May 25 21:55:21 2023 OS/Arch: linux/amd64 Context: default Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? systemctl start docker Client: Docker Engine - Community Version: 24.0.2 API version: 1.43 Go version: go1.20.4 Git commit: cb74dfc Built: Thu May 25 21:55:21 2023 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 24.0.2 API version: 1.43 (minimum version 1.12) Go version: go1.20.4 Git commit: 659604f Built: Thu May 25 21:54:24 2023 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.21 GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8 runc: Version: 1.1.7 GitCommit: v1.1.7-0-g860f061 docker-init: Version: 0.19.0 GitCommit: de40ad0
配置docker镜像加速 登录阿里云
配置镜像加速 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 mkdir /etc/dockervim /etc/docker/daemon.json { "registry-mirrors" : ["https://pgz00k39.mirror.aliyuncs.com" ] } systemctl daemon-reload systemctl restart docker mkdir -p /etc/dockertee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors" : ["https://pgz00k39.mirror.aliyuncs.com" ] } EOF systemctl daemon-reload systemctl restart docker
docker基本操作 镜像 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 docker search nginx docker pull 镜像名称:标签 docker pull nginx:latest docker image ls docker images docker image ls -q cc44224bfe20 605c77e624dd eeb6ee3f44bd docker image rmi nginx:latest docker image rmi cc44224bfe20 docker image save centos:7 -o /tmp/centos7.tar.gz docker image save centos:7 > /tmp/centos7.tar.gz docker image save eeb6ee3f44bd -o /tmp/centos7.tar.gz docker image save eeb6ee3f44bd > /tmp/centos7.tar.gz docker image load -i /root/nginx_alpine.tar.gz docker image load < /root/nginx_alpine.tar.gz docker image tag cc44224bfe20 nginx:alpine docker inspect docker inspect mysql:5.7
容器 docker container的规则
一个容器只做一件事
容器运行的前提条件是进程号PID为1的进程不退出
操作命令
查看
1 2 3 4 5 6 7 8 9 docker ps docker ps -a docker inspect docker inspect mysql:5.7
运行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 docker run centos:7 /bin/echo 'hello' docker run --name=zls_c7 centos:7 docker run --name=zls_nginx -d nginx:alpine docker run 镜像名:标签 -it --name -d -v --rm -p • -p 宿主机端口:容器端口 • -p 宿主机IP:宿主机端口:容器端口 • -p 宿主机IP::容器端口 • -p 宿主机端口:容器端口/udp • -p 10.0.0.100::53/udp • -p 81:80 –p 443:443 • -p 5000-65535:5000-65535 docker run -it centos:centos7 /bin/bash docker pull centos:centos7 docker create centos:centos7 docker start centos:centos7id docker exec -it centos:centos7id docker stop 4f8bf2df4d50 docker stop $(docker ps -aq)
进入容器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 docker create nginx:alpine 9e530b78f7bc29b661a9385e86249643392b1659198dc1c2633ceb8a1a10ae37 docker start 9e530b78f7bc docker exec -it 9e530b78f7bc /bin/sh docker rm 4f8bf2df4d50 docker rm `docker ps -a -q`
文件操作
1 2 3 4 docker cp h5_games fcc042180e51:/usr/share/nginx/html url:http://10.0.0.81:799/h5_games/
部署示例:部署h5小游戏 docker运行一个nginx,部署h5小游戏
docker run -d -p 798:80 -v /root/h5_games:/usr/share/nginx/html cc44224bfe20
docker运行一个mysql,写入数据,保证数据不丢失 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 mysql_dir:/var/liv/mysql/ mkdir mysql_dirMYSQL_ROOT_PASSWORD MYSQL_DATABASE MYSQL_USER MYSQL_PASSWORD MYSQL_ALLOW_EMPTY_PASSWORD MYSQL_RANDOM_ROOT_PASSWORD MYSQL_ONETIME_PASSWORD docker run \ -p 3307:3306 \ --name=mysql_test \ -v /root/mysql_dir:/var/lib/mysql/ \ -e MYSQL_ROOT_PASSWORD=123 \ -e MYSQL_DATABASE='wordpress' \ -e MYSQL_USER='wp_user' \ -e MYSQL_PASSWORD='123' \ -d c20987f18b13 --character-set-server=utf8 --collation-server=utf8_bin docker exec -it 8edf3ed1dbe9 /bin/sh mysql -uroot -p123 create database if not exists test charset utf8; show databases; exit docker ps docker stop a1480643e4bb docker run -p 3307:3306 --name=mysql_test4 -v /root/mysql_dir:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=123 -d 3218b38490ce docker ps docker exec -it 8edf3ed1dbe9 /bin/sh mysql -uroot -p123 show databses;