离线服务器安装部署docker项目
本文环境:centos7、docker-18.09.3一、前置条件
1.1、网络环境
各服务器间互联互通,大概某一台服务器能与其他的服务互联互通
1.2、工具
[*]SSH客户端:FinalShell、SmartTTY、Xshell(个人版)、MobaXterm等
[*]文件上传:Xftp(个人版)、WinSCP等
1.3、SSH免密访问设置
以 192.168.133.176、192.168.133.177、192.168.133.178这三台呆板为例;
以 192.168.133.176为紧张呆板
1.3.1、 操纵指令
指令全部在192.168.133.176呆板上执行
# 全部回车直至结束 #
ssh-keygen -t rsa # 中间需要输入 192.168.133.177 的 密码,正确输入即可 #
ssh-copy-id -i /root/.ssh/id_rsa 192.168.133.177 # 测试#
ssh 192.168.133.177
# 输入ip addr 查看登陆机器的IP #
# 退出ssh #
exit 按照雷同步骤,设置免密访问 192.168.133.178。
二、Docker安装
2.1、离线环境
2.1.1 rpm安装
获取rpm包的方法,在可以联网的最小化安装的centos服务器上执行如下:
yum install --downloadonly --downloaddir=./ docker-ce-18.09.3-3.el7 该指令下载离线依赖包于当前目录下。拷贝离线包到必要安装docker-ce-18.09.3-3.el7的服务器上,同级目录下执行脚本,脚本内容如下:
脚本内DOCKER_DATA_DIR 的值按照现实环境修改,保障该目录的磁盘空间充足使用
#!/bin/sh
# docker数据存放的目录
# 依据实际的情况修改,保障该目录的磁盘空间足够使用
DOCKER_DATA_DIR=/data
echo "安装docker"
rpm -Uvh package/*.rpm --nodeps --force
rpm -Uvh container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
rpm -Uvh docker-ce-18.09.3-3.el7.x86_64.rpm
echo "创建配置文件"
mkdir -p /etc/docker
cat > /etc/docker/daemon.json << EOF
{
"graph": "${DOCKER_DATA_DIR}/docker",
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
echo"启动"
systemctl daemon-reload
systemctl start docker
echo"开机启动"
systemctl enable docker
echo "docker info"
docker info 卸载指令
rpm -e –nodepsdocker-ce-18.09.3-3.el7.x86_64.rpm 2.1.2 二进制安装
下载二进制包:下载地点,版本18.09.3 ,另附官方下载地点,下载必要的版本。下载的压缩包上传到必要安装docker的服务器上,同目录下执行脚本 install.sh,该脚本的内容如下:
脚本内DOCKER_DATA_DIR、DOCKER_BIN_FILE_NAME的值按照现实环境修改,DOCKER_DATA_DIR设置为一个磁盘空间较大的目录
#!/bin/sh
set -e
# 依据实际的情况修改,保障该目录的磁盘空间足够使用
DOCKER_DATA_DIR=/data
# 依据实际的情况修改,修改为实际上的下载的压缩包的名称
DOCKER_BIN_FILE_NAME=docker-18.09.3.tgz
echo "解压文件"
tar zxvf${DOCKER_BIN_FILE_NAME}
mv docker/*/usr/bin
echo "sysyemd管理"
cat > /usr/lib/systemd/system/docker.service << EOF
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP \$MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
WantedBy=multi-user.target
EOF
# 授权
chmod +x /usr/lib/systemd/system/docker.service
echo "创建配置文件"
mkdir /etc/docker
cat > /etc/docker/daemon.json << EOF
{
"graph": "${DOCKER_DATA_DIR}/docker",
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
echo"启动"
systemctl daemon-reload
systemctl start docker
echo"开机启动"
systemctl enable docker
echo "docker info"
docker info 二进制安装卸载
# 停止docker #
systemctl stop docker
# 删除#
rm -f/usr/bin/docker*
rm -f/usr/bin/containerd
rm -f/usr/bin/containerd-shim
rm -f/usr/bin/ctr
rm -f/usr/bin/runc
rm -f/usr/lib/systemd/system/docker.service 2.2、互联网环境
参考:Alibaba开源镜像网站,docker-ce项
三、镜像管理
3.1、内网
主机上必要安装哪个组件就导入对应的镜像。
如安装nginx必要导入linux的镜像。
如必要运行springboot应用的服务器上必要导入java镜像。
docker save : 将指定镜像生存成 tar 归档文件
docker save -o mysql.tar mysql:5.7.24 docker load : 导入使用 docker save 命令导出的镜像,常用的镜像 java、nginx、mysql、minio(文件存储)、redis、nacos 等
docker load -i mysql.tar 3.2、互联网
3.2.1、镜像加速
您可以通过修改设置文件/etc/docker/daemon.json来使用加速器
注意下述指令针对完全没有设置过/etc/docker/daemon.json的环境,若已经设置过,自己在原底子上进行补充即可。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://l4bejypu.mirror.aliyuncs.com"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker 3.2.2、拉取镜像
以nginx为例
docker pull nginx:latest 四、中心件、应用步调安装
4.1、镜像导入
指令参考如下:
# 导入nginx镜像 #
docker load -i nginx.tar4.2、重启脚本
# 停止容器 #
docker stop 容器名称|容器ID
# 运行容器 #
docker start 容器名称|容器ID
# 重启容器 #
docker restart 容器名称|容器ID 4.5、中心件查抄
用于查抄安装的额中心件,是否正常。非必须操纵
4.5.1、MySQL启动乐成查抄
navicat等数据库客户端可以方便的修改用户的权限,密码等,大概使用MySQL的控制台,指令参考如下:
# 安装了MySQL的机器 #
docker exec -it mysql /bin/bash
# 进入容器后 #
mysql -uroot -p
# 输入密码 进入MySQL的控制台,使用MySQL指令操作 #
select 1; 4.5.2、nacos启动乐成查抄
curl http://<nacos_ip>:<nginx_port_exp>/nacos nacos不要在公网访问,避免敏感设置信息(密码等)走漏
4.5.3、nginx启动乐成查抄
ps -aux | grep nginx 4.5.4、minio启动乐成查抄
访问地点http://<minio_ip>:<minio_port_exp>,可以访问minio的网页管理。IP和端口必要申请或自行映射。
4.5.5、redis启动乐成查抄
# 安装了mysql的机器 #
docker exec -it redis /bin/bash
# 进入容器后 #
redis-cli
# 验证密码 #
auth<redis_password> 4.6、应用启动
略,注意设置生产环境参数
五、一样平常简朴运维
nacos不要在公网访问,避免数据库等敏感信息(密码等)走漏
5.1、应用运行是否正常
nacos的网页管理端(http://:/nacos),检察应用注册是否正常
5.2、中心件密码修改
MySQL不要修改重启等脚本的参数密码来修改MySQL的密码
5.2.1、MySQL密码修改
示例:修改密码为1234567
# 安装mysql的机器,进入容器 #docker exec -it mysql /bin/bash# 输入现在的密码 #mysql -uroot -p# 修改密码 #ALTER USER `root`@`%` IDENTIFIED BY '1234567';# 刷新权限 #flush privileges;# 退出容器 完成密码修改 # 5.2.2、Redis密码修改
修改redis的重启脚本即可
5.2.3、Minio密码修改
修改重启脚本的参数MINIO_SECRET_KEY,再执行脚本即可
docker run -p 9000:9000 -d --name minio \
--restart=always \
-e MINIO_ACCESS_KEY="admin" \
-e MINIO_SECRET_KEY="123456" \
-v /etc/localtime:/etc/localtime:ro \
-v /data/minio/data:/data \
-v /data/minio/config:/root/.minio minio/minio server /data 5.2.4、nacos修改密码
nacos修改密码,不影相应用,在网页上修改即可
5.3、nginx设置文件修改
nginx设置文件custom.conf修改后必要重新加载文件才能生效,可以直接docker restart nginx,不过更推荐下述的操纵:
# 进入nginx 容器 #docker exec -it nginx /bin/bash# j进入后,执行 nginx 测试命令#nginx -t# 测试有错误,依据提示修改即可 ## 通过测试 重新加载配置#nginx -s reload# 退出容器 #exit 5.4、应用步调新增设置参数
[*]在nacos的设置项增长相应的参数,再重启应用
[*]在Dockerfile文件中的CMD项中,新增启动参数
具体以开发职员的更新文档为准
5.5、应用更新
应用更新,设置修改等环境,保持至少一个备份,以便更新出现非常,能够快速的规复正常
六、排错指南
6.1、应用步调无法启动?
1、Java基础镜像是否有提前导入2、Dockerfil中关于nacos的配置是否正确,nacos配置中的关于mysql、redis等的配置是否正确 6.2、容器无法启动?
1、如果可以查看日志的,查看应用运行日志判断问题2、无法查看日志,查看docker的启动错误提示 6.3、容器no route host非常,包罗容器间,容器与宿主机之间无法http访问
# 放行指定的端口 #firewall-cmd --zone=public --add-port=8088/tcp --permanentfirewall-cmd --reload 6.4、启动docker的时候报错:WARNING IPv4 forwarding is disabled. Networking will not work
# 解决方案 #vi /etc/sysctl.conf# 添加配置 #net.ipv4.ip_forward=1# 重启 #systemctl restart network# 查看是否成功 #sysctl net.ipv4.ip_forward# 如果返回为net.ipv4.ip_forward = 1 则表示成功了 # 6.5、执行脚本时,$’\r’: command not found
# Windows系统的文件换行使用的是\r\n,而Unix系统是\n ## 使用 vim 打开文件#vim demo.sh# 格式转换 #:set ff=unix# 保存文件 #:wq 七、注意点
[*]安装脚本执行完成以后,不要再次执行。针对每个容器的操纵使用docker的指令即可,大概参考重启的脚本
[*]应用步调运行的底子镜像为java,提前导入
[*]中心件中nacos依赖于mysql,mysql正常运行是nacos运行的前提条件
[*]应用步调优先启动网关lee-gateway
八、前端部署
略,自行部署即可
九、dockr 常用的底子指令
9.1、停止容器
docker stop 容器名|容器ID 9.2、容器启动
# 针对停止运行了的容器 #docker start 容器名|容器ID 9.3、容器重启
docker restart 容器名|容器ID 9.4、容器删除
docker rm 容器名|容器ID 9.5、镜像删除
docker rmi 镜像名|镜像ID 9.6、删除所有镜像名为none的镜像
docker rmi $(docker images | grep "none" | awk '{print $3}') 9.7、获取容器/镜像的元数据
# 可以获取容器绑定的数据卷等信息 #docker inspect容器名|容器ID|镜像名|镜像ID 9.8、检察容器日志
# 查看最新(后)100行日志 #docker logs 容器名|容器ID --tail 100 9.9、进入容器
docker exec -it 容器名|容器ID/bin/bashdocker exec -it 容器名|容器ID/bin/sh
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]