在 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 存储库已安装。
Docker 是最著名的容器化软件。
在本文中,我们将学习如何在CentOS 7 机器上离线安装 Docker CE。
下载 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 容器。