在 CentOS 7 上安装 Docker Yum 存储库

在我们的 CentOS 7 操作系统上安装 Docker CE yum 存储库。

[root@docker-online ~]# yum-config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

启用 Docker CE (Nightly) yum 存储库。

[root@docker-online ~]# yum-config-manager --enable docker-ce-nightly
Loaded plugins: fastestmirror
=========================== repo: docker-ce-nightly ============================
[docker-ce-nightly]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7
baseurl = https://download.docker.com/linux/centos/7/x86_64/nightly
cache = 0
cachedir = /var/cache/yum/x86_64/7/docker-ce-nightly
check_config_file_age = True
compare_providers_priority = 80
cost = 1000
deltarpm_metadata_percentage = 100
deltarpm_percentage =
enabled = 1
enablegroups = True
exclude =
failovermethod = priority
ftp_disable_epsv = False
gpgcadir = /var/lib/yum/repos/x86_64/7/docker-ce-nightly/gpgcadir
gpgcakey =
gpgcheck = True
gpgdir = /var/lib/yum/repos/x86_64/7/docker-ce-nightly/gpgdir
gpgkey = https://download.docker.com/linux/centos/gpg
hdrdir = /var/cache/yum/x86_64/7/docker-ce-nightly/headers
http_caching = all
includepkgs =
ip_resolve =
keepalive = True
keepcache = False
mddownloadpolicy = sqlite
mdpolicy = group:small
mediaid =
metadata_expire = 21600
metadata_expire_filter = read-only:present
metalink =
minrate = 0
mirrorlist =
mirrorlist_expire = 86400
name = Docker CE Nightly - x86_64
old_base_cache_dir =
password =
persistdir = /var/lib/yum/repos/x86_64/7/docker-ce-nightly
pkgdir = /var/cache/yum/x86_64/7/docker-ce-nightly/packages
proxy = False
proxy_dict =
proxy_password =
proxy_username =
repo_gpgcheck = False
retries = 10
skip_if_unavailable = False
ssl_check_cert_permissions = True
sslcacert =
sslclientcert =
sslclientkey =
sslverify = True
throttle = 0
timeout = 30.0
ui_id = docker-ce-nightly/x86_64
ui_repoid_vars = releasever,
   basearch
username =

我们在 Linux 服务器中添加了两个 yum 存储库。
因此,我们应该为 yum 包管理器构建缓存。

[root@docker-online ~]# yum makecache fast

在离线系统上安装 Docker CE

将 docker.tar.gz tar包 转移到 docker-oir.onitroad.com 并复制到 root 用户的主目录。

[root@docker-oir ~]# ls -lh
total 58M
-rw-------. 1 root root 1.5K Dec 22 12:23 anaconda-ks.cfg
-rw-r--r--. 1 root root  58M Nov  8 21:39 docker.tar.gz

提取 docker.tar.gz tar包。

[root@docker-oir ~]# mkdir docker
[root@docker-oir ~]# tar xvf docker.tar.gz -C ~/docker
audit-libs-python-2.8.4-4.el7.x86_64.rpm
checkpolicy-2.5-8.el7.x86_64.rpm
containerd.io-1.2.2-3.el7.x86_64.rpm
container-selinux-2.74-1.el7.noarch.rpm
docker-ce-18.09.1-3.el7.x86_64.rpm

在 ~/docker 目录中安装所有包。

[root@docker-oir ~]# cd docker
[root@docker-oir docker]# rpm -ivh --replacefiles --replacepkgs *.rpm

启动并启用 Docker 服务。

[root@docker-oir docker]# systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@docker-oir docker]# systemctl start docker.service

我们已经在离线 Linux 服务器上成功安装了 Docker CE。

在 CentOS 7 上安装 EPEL Yum 软件库

以 root 用户身份登录到服务器 docker-online.onitroad.com。

Docker CE 需要一些软件包,这些软件包在 EPEL(Extra Packages for Enterprise Linux)yum 存储库中可用。
因此,我们必须先安装 EPEL yum 存储库。

[root@docker-online ~]# yum install -y epel-release.noarch

EPEL yum 存储库已安装。

在 CentOS 7 机器上如何离线安装 Docker CE

Docker 是最著名的容器化软件。
在本文中,我们将学习如何在CentOS 7 机器上离线安装 Docker CE。

之路 on it Road.com

下载 Docker CE 和软件依赖

创建目录以下载 Docker CE 和相关软件包。

[root@docker-online ~]# mkdir ~/docker
[root@docker-online ~]# cd ~/docker

下面 Linux 命令下载 Docker CE 和依赖包。

[root@docker-online docker]# yumdownloader --resolve docker-ce

Docker CE 及相关软件包已下载。

[root@docker-online docker]# ls
audit-libs-python-2.8.4-4.el7.x86_64.rpm
checkpolicy-2.5-8.el7.x86_64.rpm
containerd.io-1.2.2-3.el7.x86_64.rpm
container-selinux-2.74-1.el7.noarch.rpm
docker-ce-18.09.1-3.el7.x86_64.rpm
docker-ce-cli-18.09.1-3.el7.x86_64.rpm
libcgroup-0.41-20.el7.x86_64.rpm
libseccomp-2.3.1-3.el7.x86_64.rpm
libsemanage-python-2.5-14.el7.x86_64.rpm
policycoreutils-2.5-29.el7_6.1.x86_64.rpm
policycoreutils-python-2.5-29.el7_6.1.x86_64.rpm
python-IPy-0.75-6.el7.noarch.rpm
setools-libs-3.3.8-4.el7.x86_64.rpm

由于我们使用的内核版本,上述软件包版本在 Linux 服务器上可能会有所不同。

现在,我们需要将这些文件传输到 docker-oir.onitroad.com 。
因此,我们正在创建所有下载的软件包的 tar包。

[root@docker-online docker]# tar cvzf ~/docker.tar.gz *
audit-libs-python-2.8.4-4.el7.x86_64.rpm
checkpolicy-2.5-8.el7.x86_64.rpm
containerd.io-1.2.2-3.el7.x86_64.rpm
...
python-IPy-0.75-6.el7.noarch.rpm
setools-libs-3.3.8-4.el7.x86_64.rpm

现在,我们有了 Docker CE 和相关软件包的 tar包。

[root@docker-online docker]# ls ~ -lh
total 58M
-rw-------. 1 root root 1.5K Dec 22 11:29 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4.0K Nov  8 21:32 docker
-rw-r--r--. 1 root root  58M Nov  8 21:39 docker.tar.gz

从 Docker Hub 下载 Docker 镜像

要创建容器,我们需要 Docker 镜像,这些镜像可通过 Docker Hub 或者私有 Docker Registry 服务器获得。

由于我们的 Linux 服务器没有连接到 Internet,因此我们不能直接从 Docker Hub 拉取 Docker 镜像。

此问题的解决方法是在在线系统上下载 Docker 镜像,然后将这些镜像传输并加载到我们离线的 CentOS 7 服务器。

注意:我们必须先在在线系统上安装 Docker CE。
因为我们将使用 docker 命令从 Docker Hub 下载和保存镜像。

[root@docker-online ~]# docker pull jenkins/jenkins

将 Jenkins 镜像保存在 tar 文件中。

[root@docker-online ~]# docker save jenkins/jenkins > ~/jenkins.tar
[root@docker-online ~]# ls -lh
total 690M
-rw-------. 1 root root 1.5K Dec 22 11:29 anaconda-ks.cfg
-rw-r--r--. 1 root root 690M Nov 12 22:07 jenkins.tar

将 jenkins.tar 转移到 docker-oir.onitroad.com 。

使用 docker 命令加载 jenkins.tar 镜像。

[root@docker-oir ~]# docker load < jenkins.tar
13d5529fd232: Loading layer  105.6MB/105.6MB
abc3250a6c7f: Loading layer  24.07MB/24.07MB
...
37dfb8384dfe: Loading layer  7.168kB/7.168kB
8f65ce1dc902: Loading layer  12.29kB/12.29kB
Loaded image: jenkins/jenkins:latest

Jenkins 镜像已加载到 Docker 中。
我们可以使用以下 Linux 命令来验证这一点。

[root@docker-oir ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jenkins/jenkins     latest              9b74eda1c268        32 hours ago        704MB

现在,我们可以从 Jenkins/Jenkins 镜像创建和运行 Docker 容器。

日期:2020-09-17 00:16:27 来源:oir作者:oir