生产服务器访问外网受限,此外使用yum源下载镜像的速度较慢,在此介绍离线安装的方法。
第一步:准备docker离线包
在这里选择的是官方离线包(docker官方离线包下载地址),在这里可以按自己的需求选择对应的版本。我安装使用的是docker-17.03.2-ce.tgz版本。
第二步:准备配置文件和安装脚本
为了方便查找,新建路径~k8s/docker,切换到该路径下。
新建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
新建安装脚本install.sh
#!/bin/sh
echo '解压tar包...'
tar -xvf $1
echo '将docker目录移到/usr/bin目录下...'
cp docker/* /usr/bin/
echo '将docker.service 移到/etc/systemd/system/ 目录...'
cp docker.service /etc/systemd/system/
echo '添加文件权限...'
chmod +x /etc/systemd/system/docker.service
echo '重新加载配置文件...'
systemctl daemon-reload
echo '启动docker...'
systemctl start docker
echo '设置开机自启...'
systemctl enable docker.service
echo 'docker安装成功...'
docker -v
新建卸载脚本uninstall.sh
#!/bin/sh
echo '删除docker.service...'
rm -f /etc/systemd/system/docker.service
echo '删除docker文件...'
rm -rf /usr/bin/docker*
echo '重新加载配置文件'
systemctl daemon-reload
echo '卸载成功...'
第三步:安装docker
执行脚本:
sh install.sh docker-17.03.2-ce.tgz
脚本执行完毕后,使用docker --help输出提示 即证明安装完成。
第四步:配置docker代理访问外网
目前的生产机器是无法直接访问外网镜像之类的资源,所以需要永久配置一下docker外网代理。
如果配置文件夹不存在,新建该路径:
mkdir -p /etc/systemd/system/docker.service.d
在该路径下,新建代理配置文件:
[Service]
Environment="HTTP_PROXY=http://10.223.94.15:8089/" "HTTPS_PROXY=https://10.223.94.15:8089/" "NO_PROXY=localhost,127.0.0.1,daocloud.io,myshare.io"
配置代理后还可以添加白名单访问地址,局域网内的私有镜像库、国内你放有镜像的公开库。我在这里添加了集群局域网内的私有库。
刷新docker守护进程的配置:
sudo systemctl daemon-reload
重启docker即可永久使用代理访问外网镜像资源:
sudo systemctl restart docker