linux下离线docker安装运行
前言
- 如果服务器能外网访问,那么根据官网的描述即可通过包管理器轻松搭建docker环境,但如果服务器处在内网无法访问外网时,那就只能通过离线二进制包进行安装了。
环境
- 本文所属皆在centos7下运行,内核版本3.10
安装docker
下载docker二进制包
-
在https://download.docker.com/linux/static/stable/ 此路径下下载对应系统的docker压缩包
-
比如我此处下载的是docker-18.09.1.tgz
-
将下载好的压缩包通过scp或xftp拷贝进centos进行解压,比如我解压在docker18091目录下
-
接着cd到docker18091目录,执行
sudo cp ./* /usr/bin/
- 1
-
以上命令表示把docker18091下的东西拷贝进bin目录下
注意以上拷贝进bin的步骤不是必须的,但如果没有这步骤,则需要把docker配置进环境变量
配置国内镜像
- 由于已知的原因,国内访问速度比较慢,因此最好配置下国内的镜像
- 在/etc/docker/daemon.json(如果没有这个文件那么创建就好了)中添加如下镜像地址(可以修改为你喜欢的任何国内镜像地址)
{ "registry-mirrors": ["http://hub-mirror.c.163.com"] }
运行docker
- 配置完毕后输入以下命令运行docker,等待一段时间后输入docker -v,如果正常得到版本号那么基本的docker环境已经搭建好了
sudo dockerd &
其他配置
开机启动
-
二进制版安装是不会开机自启动的,这样每次开机都要手动去执行一下命令运行docker就太麻烦了,因此把docker交给systemd去管理,实现开机自启动
-
当我们使用systemctl restart docker去重启docker时会发现提示错误
Failed to execute operation: No such file or directory
-
这是因为我们没有把docker交给systemd去管理
-
我们可以查看官方的解决方案:https://docs.docker.com/v17.09/engine/admin/systemd/#manually-create-the-systemd-unit-files ,直接看到最后的标题 Manually create the systemd unit files
-
在其给出的github(https://github.com/moby/moby/tree/master/contrib/init/systemd)中下载docker.service.rpm和docker.socket两个文件,并将docker.service.rpm改名为docker.service,然后把这两个文件拷进/etc/systemd/system目录下
-
然后重新开机
sudo reboot
-
开完机可以启动docker服务了
sudo systemctl start docker
-
最后执行命令使docker服务开机自启动
sudo systemctl enable docker
-
上面的步骤追踪之所以不用原本的docker.service,是因为docker.service比docker.service.rpm多出了Requires=docker.socket这一项,因此会导致错误
A dependency job for docker.service faled. See ‘journalctl -xe’ for details.
参考
Install Docker CE from binaries | Docker Documentation
https://docs.docker.com/install/linux/docker-ce/binaries/
Control and configure Docker with systemd | Docker Documentation
https://docs.docker.com/v17.09/engine/admin/systemd/#manually-create-the-systemd-unit-files
Post-installation steps for Linux | Docker Documentation
https://docs.docker.com/install/linux/linux-postinstall/
解决二进制方式安装 docker 不能使用 systemd(systemctl) 工具管理 docker 服务的问题 - (ÒωÓױ) - CSDN博客
https://blog.csdn.net/u012814856/article/details/80493760</div><div><div></div></div> <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet"> </div> </article>
- 配置完毕后输入以下命令运行docker,等待一段时间后输入docker -v,如果正常得到版本号那么基本的docker环境已经搭建好了