离线安装dokcer
1、下载docker安装文件
离线安装docker,需要下载docker的安装文件。
地址:https://download.docker.com/linux/static/stable/x86_64/
我下的是最新的版本[docker-19.03.6.tgz],文件不大,只有60M左右。
2.解压后 复制到binl目录
gunzip docker-19.03.6.tgz && tar -xvf docker-19.03.6.tar && cp docker/* /usr/bin/
3.将docker注册为service,在/etc/systemd/system目录下创建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
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
4.启动docker
chmod +x /etc/systemd/system/docker.service &&\
systemctl daemon-reload &&\
systemctl start docker &&\
systemctl enable docker.service
5.验证docker是否安装成功
systemctl status docker #查看Docker状态
docker -v #查看Docker版本
镜像导入
1导出镜像
docker save mysql:5.7 -o mysql:5.7.tar #将mysql:5.7的镜像导出成tar文件
2将tar文件上传到内网docker服务器,使用如下命令导入镜像文件:
docker load -i mysq.5.7.tar
可能出现的问题
内部容器访问宿主机时出现 docker no route to host
解决步骤
配置docker0服务到受信任连接
nmcli connection modify docker0 connection.zone trusted
停止NetworkManager(检测网络、自动连接网络的程序)服务
systemctl stop NetworkManager.service
修改docker网络接口为内部区域(永久)
firewall-cmd --permanent --zone=trusted --change-interface=docker0
启动NetworkManager(检测网络、自动连接网络的程序)服务
systemctl start NetworkManager.service
配置docker0服务到受信任连接
nmcli connection modify docker0 connection.zone trusted
重启docker服务
systemctl restart docker.service
复制下面的命令
nmcli connection modify docker0 connection.zone trusted &\
systemctl stop NetworkManager.service &\
firewall-cmd --permanent --zone=trusted --change-interface=docker0 &\
systemctl start NetworkManager.service &\
nmcli connection modify docker0 connection.zone trusted &\
systemctl restart docker.service