Docker官网
https://www.docker.com/https://www.docker.com/
删除原先安装的Docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
这台机子原先没有安装过 因此不需要 只是演示下
如果原先安装过docker docker的历史镜像 容器等数据会放在 /var/lib/docker里面 主机上的镜像、容器、卷或自定义配置文件不会自动删除
可以通过下面命令删除赶紧 酌情执行
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
查看docker版本
docker --version 因为没有安装
下面开始安装Docker
安装 yum-utils工具包
:
sudo yum install -y yum-utils
添加 Docker 仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
如果是国内服务器用阿里云镜像
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
这台用的国外服务器 可以安装
安装docker引擎 及组件(安装最新版本)
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
中间要确认两次 y y
启动docker
systemctl start docker
安装Nginx
创建多个文件夹
mkdir -p /usr/local/develop/docker/nginx
找一个默认的新的nginx.conf 或者原先有的nginx.conf 放到 /usr/local/develop/docker/nginx文件夹下
docker run -d -p 80:80 -p 443:443 --name nginx \
-v /usr/local/develop/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/develop/docker/nginx/conf.d:/etc/nginx/conf.d \
-v /usr/local/develop/docker/nginx/html:/usr/share/nginx/html \
-v /usr/local/develop/docker/nginx/logs:/var/log/nginx \
-v /usr/local/develop/docker/nginx/ssl:/etc/nginx/ssl \
-v /etc/letsencrypt:/etc/letsencrypt \
nginx
指定版本
docker run -d -p 80:80 -p 443:443 --name nginx \
-v /usr/local/develop/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/develop/docker/nginx/conf.d:/etc/nginx/conf.d \
-v /usr/local/develop/docker/nginx/html:/usr/share/nginx/html \
-v /usr/local/develop/docker/nginx/logs:/var/log/nginx \
-v /usr/local/develop/docker/nginx/ssl:/etc/nginx/ssl \
-v /etc/letsencrypt:/etc/letsencrypt \
nginx:1.20.0
查看docker中运行的容器
docker ps -a
进入docker安装的nginx容器内部
docker exec -it nginx /bin/bash 注意 -it 后面可以是 镜像id 也可以是容器名
exit 退出
关于docker cp命令 从容器内部复制文件或者文件夹到外部 该命令示例 我是直接手动拖进去的
docker cp 容器名/容器id:/etc/nginx/nginx.conf /usr/local/develop/docker/nginx/nginx.conf
开通安全组
docker查看镜像和删除镜像
docker images 查看所有镜像
docker rmi 镜像名/容器id
下面配置SSL
先自行把域名DNS解析配置好
然后在修改宿主机/usr/local/develop/docker/nginx 下的nginx.conf 另外加了一个server模块
安装certbot
yum install certbot
certbot certonly --webroot -w /usr/local/develop/docker/nginx/ssl -d www.xxx.xyz -d xxx.xyz
修改配置
重启
docker restart nginx
可以用ssl访问了
设置docker开机自启
systemctl enable docker
当docker启动 配置 Docker 容器内的 Nginx 也开机自启
两种方式 1.运行容器时使用 --restart
选项
docker run -d -p 80:80 -p 443:443 --name nginx \
-v /usr/local/develop/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/develop/docker/nginx/conf.d:/etc/nginx/conf.d \
-v /usr/local/develop/docker/nginx/html:/usr/share/nginx/html \
-v /usr/local/develop/docker/nginx/logs:/var/log/nginx \
-v /usr/local/develop/docker/nginx/ssl:/etc/nginx/ssl \
-v /etc/letsencrypt:/etc/letsencrypt \
--restart always \
nginx
我们现在已经运行了 所以选第二种
docker update --restart always nginx
关闭服务器测试
// 设置开机自启
sudo systemctl enable docker// 停止
sudo systemctl stop docker
// 重启
sudo systemctl restart docker
// 查看状态
sudo systemctl status docker
// 设置开机自启
sudo systemctl enable docker
// 取消开机自启
sudo systemctl disable docker
// 查看是否已经配置开机自启
sudo systemctl is-enabled docker