[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;