离线安装Docker

159 阅读1分钟

安装环境

centos 7.0

[root@SZDT-JEST-web home]# uname -a
Linux SZDT-JEST-web 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

官方文档

https://docs.docker.com/install/linux/docker-ce/binaries/

步骤

卸载

卸载老版本,目前docker只有社区CE版和收费的企业版。

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

SET UP THE REPOSITORY

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2 \
  xfsprogs

yum-utils provides the yum-config-manager utility, and device-mapper-persistent-data and lvm2 are required by the devicemapper storage driver.

xfsprogs :在安装后的启动过程中出现错误: INFO[2019-07-23T14:19:10.777101883+08:00] devmapper: Error while creating filesystem xfs on device docker-253:1-201859565-base: exit status 1 ERRO[2019-07-23T14:19:10.777129751+08:00] [graphdriver] prior storage driver devicemapper failed: exit status 1 升级一下xfsprogs

在没有网络的情况下,可以离线安装。 vault.centos.org/7.0.1406/os…

sudo rpm -ivh device-mapper-persistent-data-0.8.5-1.el7.x86_64.rpm
sudo rpm -ivh xfsprogs-3.2.0-0.10.alpha2.el7.x86_64.rpm

下载安装包

download.docker.com/linux/stati…


安装

tar -xvf docker-18.06.1-ce.tgz
将解压出来的docker文件内容移动到 /usr/bin/ 目录下
cp docker/* /usr/bin/

配置

将docker注册为service
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

系统修改

1.修改 /etc/selinux/config 中 SELINUX=disabled

vim  /etc/selinux/config

2.添加属性到docker

touch /etc/sysconfig/docker

vim /etc/sysconfig/docker 

OPTIONS="--selinux-enabled --log-driver=journald --signature-verification=false"

3.国内镜像

mkdir /etc/docker
touch /etc/docker/daemon.json
vim /etc/docker/daemon.json

4.修改存储路径 三选一

vim /etc/docker/daemon.json
{
    "graph": "/home/docker/data"
}
or
{
    "registry-mirrors": ["https://registry.docker-cn.com"],
    "graph": "/home/docker/data"
}
or
{
    "registry-mirrors": ["https://registry.docker-cn.com"],
    "insecure-registries":["192.168.3.129:5000"],
    "graph": "/home/docker/data"
}

3.6 启动测试

groupadd docker
sudo usermod -aG docker $USER

3.7 其他

systemctl stop docker

开机自启动

systemctl enable docker


查看Docker状态

systemctl status docker   

查看Docker版本

docker -v                                                                     

导入镜像

docker save -o update1.tar update //镜像的导出 update 镜像名字

docker load  < update1.tar //镜像的导入

docker load -i  update1.tar //镜像的导入

rabbitmq 导入镜像并且启动

docker run -d --name rabbitmq3.7.15 -p 5672:5672 -p 15672:15672 -v `pwd`/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost  -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin233 rabbitmq