1.解压docker压缩文件
tar -zxvf docker-20.10.6.tgz
2.移动解压出来的二进制文件到/usr目录
mv docker/* /usr/bin/
3.配置 Docker 服务
vi /usr/lib/systemd/system/docker.service
4.将下面的内容复制到刚创建的docker.service文件中
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
5.为docker.service添加执行权限
chmod +x /usr/lib/systemd/system/docker.service
6.启动 Docker
systemctl start docker
docker ps
docker -v
7.添加开机自动启动
systemctl enable docker
8.安装 docker-compose
cp docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
9.查看版本
docker-compose -v
10.在docker中导入nginx镜像文件
docker load -i 镜像名.tar
11.查看镜像
docker images
12.给镜像重命名
docker tag 镜像名id 命名的镜像名:版本
13.在home下面创建分别创建以下四个目录
mkdir -p /home/nginx/conf 挂载容器里面的配置,即nginx.conf
mkdir -p /home/nginx/conf.d 挂载容器里面的子配置,即nginx.conf里面include的配置文件
mkdir -p /home/nginx/logs 挂载容器里面的代理的日志文件
mkdir -p /home/nginx/html 挂载容器里面的界面的访问
挂载:即将宿主的文件和容器内部目录相关联,相互绑定,在宿主机内修改文件的话也随之修改容器内部文件
14.启动nginx(先不挂载nginx.con配置文件)
docker run -d -p 80:80 --name nginx -v /home/nginx/logs:/var/log/nginx nginx
docker ps 查看正在运行的容器 docker ps -a 查询所有容器(正在运行和其他状态的)
15.将容器中的两个文件拷贝到我们前面准备的指定挂载目录中
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/
docker cp nginx:/etc/nginx/conf.d/default.conf /home/nginx/conf.d/
16.停止和删除正在运行的nginx容器
docker stop nginx
docker rm -f nginx
17.编辑启动脚本使用挂载目录的方式去启动nginx容器:
#!/bin/bash docker run -d -p 80:80 --name nginx -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf.d:/etc/nginx/conf.d -v /home/nginx/logs:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html nginx:latest
解释:
命令解读: run:启动一个docker容器
name:设置启动后容器的名称
d: 后台启动
p: 绑定别的端口 -p a:b 将宿主机器的a端口绑定到容器的b端口 -P 为随机绑定到端口
v : 挂载的内容 宿主机器的文件夹:容器的文件夹