docker是目前应用最广泛的容器技术,部署应用方便快速,同时特别容易管理,所以非常重要,特此写个教程记录。
由于docker的服务器在海外,如果安装出现什么异常问题请先解决网络问题。
一、环境配置
1-1.换系统源(这里使用的是自动化脚本)
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh)
Tips:顺带关闭了SElinux和防火墙
1-2.安装常用程序
yum install -y wget vim bash-completion
Tips:安装完成后重启一下系统。
1-3.Docker安装
wget -qO- https://get.docker.com/ | sh
1-4.开启并设置docker开机自启动
systemctl start docker.service && systemctl enable docker.service && systemctl status docker.service
二、容器部署
在安装容器之前前说一下思路;
nginx-proxy-manager-zh是一个NGINX反向代理容器,可以反向代理网站和申请SSL证书以及管理证书用;
portainer是一个简化管理docker的WebUI页面;
用户的所有流量请求都经过nginx-proxy-manager-zh反向代理到portainer和后面将要创建的容器上,这样既可以统一管理证书,又避免了各种服务暴露不必要端口在公网的风险,所以我要这么安装。容器之间只需要相互解析主机名即可相互通信,也就是docker的容器名称。
2-1.创建容器:nginx-proxy-manager-zh
2-1-1.在安装之前,先查看docker网络列表,防止冲突。
docker network ls
- 如果只显示bridge、host、none三种网络类型则表示环境干净,可以继续操作。
2-1-2.创建一个名字叫 internal 的docker网络。
docker network create internal
2-1-3.创建nginx-proxy-manager-zh容器服务
docker run -d \ --name nginx-proxy-manager-zh \ --restart always \ --network internal \ -p 80:80 \ -p 81:81 \ -p 443:443 \ -v /home/docker/nginx-proxy-manager-zh/data:/data \ -v /home/docker/nginx-proxy-manager-zh/letsencrypt:/etc/letsencrypt \ chishin/nginx-proxy-manager-zh
2-1-4.容器nginx-proxy-manager-zh的访问参数
http://IP:81 Email:admin@example.com Password:changeme
2-1-5.如果可以成功打开此网页则代表部署成功。
2.创建容器:portainer
2-1.创建portainer
docker run -d \ --name portainer \ --restart always \ --network internal \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /home/docker/portainer/data:/data \ 6053537/portainer-ce
2-2.默认portainer的访问地址为IP:9000,但是本次部署是NGINX反向代理过去,所以需要进入nginx-proxy-manager-zh这个管理页面添加主机名和9000端口,然后使用设置的IP或者域名访问即可。
2-3.如果可以正常访问即部署完成。
后续如果需要部署新的容器或者堆栈,可以用主机名相互通信。
end…