docker离线安装并导入镜像过程
作者:古甲哈醒
这篇文章主要介绍了docker离线安装并导入镜像过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
实际项目开发过程中,客户环境大多是全内网环境,无法连接互联网。这样docker就不能yum在线联网安装,所需要的镜像也不能在线pull下载。这时就需要进行离线安装docker及镜像。
1、下载docker安装文件
离线安装docker,需要下载docker的安装文件。
地址:https://download.docker.com/linux/static/stable/x86_64/
我下的是最新的版本[docker-19.03.6.tgz],文件不大,只有60M左右。
2、离线docker安装
将安装包文件上传到服务器目录并解压。
[root@iZbp13sno1lc2yxlhjc4b3Z ~]#tar -xvf docker-19.03.6.tar
将解压出来的docker文件内容移动到 /usr/bin/ 目录下
[root@iZbp13sno1lc2yxlhjc4b3Z ~]#cp docker/* /usr/bin/
将docker注册为service,在/etc/systemd/system目录下创建docker.service文件,并配置如下内容保存。
[root@iZbp13sno1lc2yxlhjc4b3Z ~]#vim /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
添加文件权限并启动docker,执行如下命令:
chmod +x /etc/systemd/system/docker.service #添加文件权限 systemctl daemon-reload #重载unit配置文件 systemctl start docker #启动Docker systemctl enable docker.service #设置开机自启
验证docker安装是否成功:
systemctl status docker #查看Docker状态 docker -v #查看Docker版本
Docker离线安装好后,下面我们把镜像导入到Docker。
3、离线镜像文件导入
内网环境没法pull镜像,但是docker本身可以将已有的镜像导出成tar文件,并且可以再次导入到docker,利用这一点,可以实现离线镜像文件的下载。
找一台可以联网的docker机器,并pull下载需要的镜像文件。
然后使用如下命令将镜像文件导出:
docker save java:8 -o java.tar #将java 8的镜像导出成tar文件
将tar文件上传到内网docker服务器,使用如下命令导入镜像文件:
docker load -i java.tar
查看导入的镜像文件:
[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE java 8 d23bdf5b1b1b 3 years ago 643MB
OK,通过上述方式,实现了内网环境下docker的安装和镜像文件下载。后续我们就可以愉快的使用docker来部署管理我们的应用了。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。