【liunx——docker容器技术】

本文详细介绍了Docker容器技术,包括其概念、优势以及如何配置和使用Docker。内容涵盖Docker的基础环境配置、仓库设置、安装过程以及启动和测试Docker的步骤,帮助开发者和运维人员掌握这一关键的容器平台。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

容器是继大数据和云计算之后的又一热门技术,越来越多的应用以容器的方式在开发、测试和生产环境中运行。作为目前较为流行的容器平台,Docker 是开发、发布和运行应用的开放平台。利用 Docker 的快速发布、测试和部署的整套方法,可以大大减少开发中的代码编写与运行之间的时间延迟,提高软件开发的效率和质量,实现产品的快速交付和快速迭代。软件开发人员、IT 实施和运维工程师都需要掌握这一新兴技术。


提示:以下是本篇文章正文内容,下面案例可供参考

一、认识docker(并配置好Docker的基本运行环境)

Docker是一个开源的容器项目,它使用 Go 语言开发实现,遵从Apache 2.0 协议。作为运行和管理容器的容器引擎,Docker 让开发人员可以将应用程序及其依赖打包到一个可移植的镜像中,然后发布到任何使用流行的操作系统(如 Linux、Windows 和mac OS)的计算机上,也可以发布到云端进行部署。Docker 是传统虚拟机的替代解决方案,越来越多的应用程序以容器(一种操作系统层虚拟化方式方式在开发、测试和生产环境中运行。

二、使用步骤

设置docker仓库

在新主机上首次安装docker之前,需要先设置docker的yum仓库,这样可以很方便的从该仓库安装和更新Docker
(1)执行以下命令安装其必要的包。其中,yum-utils 提供 yum-config-manager工具,devicemapper 存储驱动程序需要 device-mapper-persistent-data和Ivm2。

yum install -y yum-utils device-mapper-persistent-data Ivm2

代码如下(示例):

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data Ivm2
已加载插件:fastestmirror
Determining fastest mirrors
 * base: mirrors.bfsu.edu.cn
 * extras: mirror.lzu.edu.cn
 * updates: mirror.lzu.edu.cn
base                                                                          | 3.6 kB  00:00:00     
extras                                                                        | 2.9 kB  00:00:00     
updates                                                                       | 2.9 kB  00:00:00     
(1/4): base/7/x86_64/group_gz                                                 | 153 kB  00:00:01     
(2/4): extras/7/x86_64/primary_db                                             | 249 kB  00:00:03     
(3/4): base/7/x86_64/primary_db                                               | 6.1 MB  00:00:14     
(4/4): updates/7/x86_64/primary_db                                            |  20 MB  00:00:32     
没有可用软件包 Ivm2。
正在解决依赖关系
--> 正在检查事务
---> 软件包 device-mapper-persistent-data.x86_64.0.0.8.5-3.el7 将被 升级
---> 软件包 device-mapper-persistent-data.x86_64.0.0.8.5-3.el7_9.2 将被 更新
---> 软件包 yum-utils.noarch.0.1.1.31-54.el7_8 将被 安装
--> 正在处理依赖关系 python-kitchen,它被软件包 yum-utils-1.1.31-54.el7_8.noarch 需要
--> 正在处理依赖关系 libxml2-python,它被软件包 yum-utils-1.1.31-54.el7_8.noarch 需要
--> 正在检查事务
---> 软件包 libxml2-python.x86_64.0.2.9.1-6.el7_9.6 将被 安装
--> 正在处理依赖关系 libxml2 = 2.9.1-6.el7_9.6,它被软件包 libxml2-python-2.9.1-6.el7_9.6.x86_64 需要
---> 软件包 python-kitchen.noarch.0.1.1.1-5.el7 将被 安装
--> 正在处理依赖关系 python-chardet,它被软件包 python-kitchen-1.1.1-5.el7.noarch 需要
--> 正在检查事务
---> 软件包 libxml2.x86_64.0.2.9.1-6.el7.5 将被 升级
---> 软件包 libxml2.x86_64.0.2.9.1-6.el7_9.6 将被 更新
---> 软件包 python-chardet.noarch.0.2.2.1-3.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=====================================================================================================
 Package                               架构           版本                     源               大小
=====================================================================================================
正在安装:
 yum-utils                             noarch         1.1.31-54.el7_8          base            122 k
正在更新:
 device-mapper-persistent-data         x86_64         0.8.5-3.el7_9.2          updates         423 k
为依赖而安装:
 libxml2-python                        x86_64         2.9.1-6.el7_9.6          updates         247 k
 python-chardet                        noarch         2.2.1-3.el7              base            227 k
 python-kitchen                        noarch         1.1.1-5.el7              base            267 k
为依赖而更新:
 libxml2                               x86_64         2.9.1-6.el7_9.6          updates         668 k

事务概要
=====================================================================================================
安装  1 软件包 (+3 依赖软件包)
升级  1 软件包 (+1 依赖软件包)

总下载量:1.9 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
警告:/var/cache/yum/x86_64/7/base/packages/python-kitchen-1.1.1-5.el7.noarch.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
python-kitchen-1.1.1-5.el7.noarch.rpm 的公钥尚未安装
(1/6): python-kitchen-1.1.1-5.el7.noarch.rpm                                  | 267 kB  00:00:01     
(2/6): python-chardet-2.2.1-3.el7.noarch.rpm                                  | 227 kB  00:00:01     
device-mapper-persistent-data-0.8.5-3.el7_9.2.x86_64.rpm 的公钥尚未安装
(3/6): device-mapper-persistent-data-0.8.5-3.el7_9.2.x86_64.rpm               | 423 kB  00:00:01     
(4/6): libxml2-python-2.9.1-6.el7_9.6.x86_64.rpm                              | 247 kB  00:00:01     
(5/6): yum-utils-1.1.31-54.el7_8.noarch.rpm                                   | 122 kB  00:00:00     
(6/6): libxml2-2.9.1-6.el7_9.6.x86_64.rpm                                     | 668 kB  00:00:02     
-----------------------------------------------------------------------------------------------------
总计                                                                 785 kB/s | 1.9 MB  00:00:02     
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
导入 GPG key 0xF4A80EB5:
 用户ID     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 指纹       : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 软件包     : centos-release-7-9.2009.0.el7.centos.x86_64 (@anaconda)
 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : python-chardet-2.2.1-3.el7.noarch                                                1/8 
  正在安装    : python-kitchen-1.1.1-5.el7.noarch                                                2/8 
  正在更新    : libxml2-2.9.1-6.el7_9.6.x86_64                                                   3/8 
  正在安装    : libxml2-python-2.9.1-6.el7_9.6.x86_64                                            4/8 
  正在安装    : yum-utils-1.1.31-54.el7_8.noarch                                                 5/8 
  正在更新    : device-mapper-persistent-data-0.8.5-3.el7_9.2.x86_64                             6/8 
  清理        : libxml2-2.9.1-6.el7.5.x86_64                                                     7/8 
  清理        : device-mapper-persistent-data-0.8.5-3.el7.x86_64                                 8/8 
  验证中      : device-mapper-persistent-data-0.8.5-3.el7_9.2.x86_64                             1/8 
  验证中      : libxml2-2.9.1-6.el7_9.6.x86_64                                                   2/8 
  验证中      : libxml2-python-2.9.1-6.el7_9.6.x86_64                                            3/8 
  验证中      : python-kitchen-1.1.1-5.el7.noarch                                                4/8 
  验证中      : yum-utils-1.1.31-54.el7_8.noarch                                                 5/8 
  验证中      : python-chardet-2.2.1-3.el7.noarch                                                6/8 
  验证中      : libxml2-2.9.1-6.el7.5.x86_64                                                     7/8 
  验证中      : device-mapper-persistent-data-0.8.5-3.el7.x86_64                                 8/8 

已安装:
  yum-utils.noarch 0:1.1.31-54.el7_8                                                                 

作为依赖被安装:
  libxml2-python.x86_64 0:2.9.1-6.el7_9.6             python-chardet.noarch 0:2.2.1-3.el7            
  python-kitchen.noarch 0:1.1.1-5.el7                

更新完毕:
  device-mapper-persistent-data.x86_64 0:0.8.5-3.el7_9.2                                             

作为依赖被升级:
  libxml2.x86_64 0:2.9.1-6.el7_9.6                                                                   

完毕!

(2)执行以下命令设置Docker CE 稳定版的仓库地址。即使用户还想从每日构建版或测试版的Docker 仓库进行安装,也始终需要稳定版的仓库。考虑到国内访问 Docker 官方镜像不方便,这里提供的是阿里巴巴的镜像仓库源。

yum-config-manager --add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@localhost ~]# yum-config-manager --add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
已加载插件:fastestmirror
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

这将在/etc/yum.repos.d 目录下创建一个名为 docker.repo 的文件。该文件中定义了多个仓库的地址但默认只有稳定版(Stable )被启用。如果要启用 Nightly和Test 仓库,则要启用相应的选项,命令如下

yum-config-manager --enable docker-ce-nightly
[root@localhost ~]# yum-config-manager --enable docker-ce-nightly
已加载插件:fastestmirror
====================================== repo: docker-ce-nightly ======================================
[docker-ce-nightly]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7
baseurl = https://mirrors.aliyun.com/docker-ce/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://mirrors.aliyun.com/docker-ce/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/7/x86_64
ui_repoid_vars = releasever,
   basearch
username = 
yum-config-manager --enable docker-ce-test
[root@localhost ~]# yum-config-manager --enable docker-ce-test
已加载插件:fastestmirror
======================================= repo: docker-ce-test ========================================
[docker-ce-test]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7
baseurl = https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/test
cache = 0
cachedir = /var/cache/yum/x86_64/7/docker-ce-test
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-test/gpgcadir
gpgcakey = 
gpgcheck = True
gpgdir = /var/lib/yum/repos/x86_64/7/docker-ce-test/gpgdir
gpgkey = https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
hdrdir = /var/cache/yum/x86_64/7/docker-ce-test/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 Test - x86_64
old_base_cache_dir = 
password = 
persistdir = /var/lib/yum/repos/x86_64/7/docker-ce-test
pkgdir = /var/cache/yum/x86_64/7/docker-ce-test/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-test/7/x86_64
ui_repoid_vars = releasever,
   basearch
username = 

要禁用仓库,使用–disable 选项即可。如果不使用阿里巴巴的镜像仓库源,改用 Docker 官方的源,则要执行以下命令创建 docker.repo文件。(因为上面已经使用了阿里巴巴的镜像仓库源所以在这里不进行演示了)

yum-config-manager --add-repo\https://download.docker.com/linux/centos/docker-ce.repo

安装Docker CE:

安装 Docker CE 方法是执行以下命令,安装最新版本的 Docker CE和containerd。(中间遇到需要选择的一直y下去就好了一个问题一个y加回车)

yum install docker-ce docker-ce-cli containerd.io
[root@localhost ~]# yum install docker-ce docker-ce-cli containerd.io
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.bfsu.edu.cn
 * extras: mirror.lzu.edu.cn
 * updates: mirror.lzu.edu.cn
docker-ce-nightly                                                                                                                        | 3.5 kB  00:00:00     
docker-ce-stable                                                                                                                         | 3.5 kB  00:00:00     
docker-ce-test                                                                                                                           | 3.5 kB  00:00:00     
(1/6): docker-ce-test/7/x86_64/updateinfo                                                                                                |   55 B  00:00:00     
(2/6): docker-ce-stable/7/x86_64/updateinfo                                                                                              |   55 B  00:00:00     
(3/6): docker-ce-stable/7/x86_64/primary_db                                                                                              | 106 kB  00:00:00     
(4/6): docker-ce-nightly/7/x86_64/updateinfo                                                                                             |   55 B  00:00:01     
(5/6): docker-ce-nightly/7/x86_64/primary_db                                                                                             | 177 kB  00:00:01     
(6/6): docker-ce-test/7/x86_64/primary_db                                                                                                | 202 kB  00:00:00     
正在解决依赖关系
--> 正在检查事务
---> 软件包 containerd.io.x86_64.0.1.6.20-3.1.el7 将被 安装
--> 正在处理依赖关系 container-selinux >= 2:2.74,它被软件包 containerd.io-1.6.20-3.1.el7.x86_64 需要
---> 软件包 docker-ce.x86_64.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值