文章目录
- linux下离线docker安装运行
- 前言
- 环境
- 安装docker
- 下载docker二进制包
- 配置国内镜像
- 运行docker
- 其他配置
- 开机启动
- 参考
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/
- 以上命令表示把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.