Docker 是一個開源工具,它可以讓創建和管理 Linux 容器變得簡單。容器就像是輕量級的虛擬機,並且可以以毫秒級的速度來啓動或停止。Docker 幫助系統管理員和程序員在容器中開發應用程序,並且可以擴展到成千上萬的節點。
容器和 VM(虛擬機)的主要區別是,容器提供了基於進程的隔離,而虛擬機提供了資源的完全隔離。虛擬機可能需要一分鐘來啓動,而容器只需要一秒鐘或更短。容器使用宿主操作系統的內核,而虛擬機使用獨立的內核。
Docker 的侷限性之一是,它只能用在 64 位的操作系統上。
Docker是一個開源的引擎,可以輕鬆的爲任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集羣和其他的基礎應用平臺。
Docker通常用於如下場景:
web應用的自動化打包和發佈;
自動化測試和持續集成、發佈;
在服務型環境中部署和調整數據庫或其他的後臺應用;
從頭編譯或者擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。
centos7安裝docker
Centos7安裝docker需要能上網,通過默認的yum源配置。
必須得要:
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@server01 yum.repos.d]# yum -y install docker
^[[DLoaded plugins: fastestmirror
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): extras/7/x86_64/primary_db | 145 kB 00:00:02
(2/4): base/7/x86_64/primary_db | 5.7 MB 00:00:03
(3/4): base/7/x86_64/group_gz | 156 kB 00:00:05
(4/4): updates/7/x86_64/primary_db | 6.0 MB 00:00:09
Determining fastest mirrors
* base: mirrors.zju.edu.cn
* extras: mirrors.zju.edu.cn
* updates: mirrors.zju.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package docker.x86_64 2:1.12.6-68.gitec8512b.el7.centos will be installed
--> Processing Dependency: docker-common = 2:1.12.6-68.gitec8512b.el7.centos for package: 2:docker-1.12.6-68.gitec8512b.el7.centos.x86_64
--> Processing Dependency: docker-client = 2:1.12.6-68.gitec8512b.el7.centos for package: 2:docker-1.12.6-68.gitec8512b.el7.centos.x86_64
--> Processing Dependency: libseccomp.so.2()(64bit) for package: 2:docker-1.12.6-68.gitec8512b.el7.centos.x86_64
--> Running transaction check
---> Package docker-client.x86_64 2:1.12.6-68.gitec8512b.el7.centos will be installed
---> Package docker-common.x86_64 2:1.12.6-68.gitec8512b.el7.centos will be installed
--> Processing Dependency: skopeo-containers >= 0.1.24-3 for package: 2:docker-common-1.12.6-68.gitec8512b.el7.centos.x86_64
--> Processing Dependency: oci-umount >= 2:2.0.0-1 for package: 2:docker-common-1.12.6-68.gitec8512b.el7.centos.x86_64
--> Processing Dependency: oci-systemd-hook >= 1:0.1.4-9 for package: 2:docker-common-1.12.6-68.gitec8512b.el7.centos.x86_64
--> Processing Dependency: oci-register-machine >= 1:0-3.10 for package: 2:docker-common-1.12.6-68.gitec8512b.el7.centos.x86_64
--> Processing Dependency: lvm2 >= 2.02.112 for package: 2:docker-common-1.12.6-68.gitec8512b.el7.centos.x86_64
--> Processing Dependency: container-storage-setup >= 0.7.0-1 for package: 2:docker-common-1.12.6-68.gitec8512b.el7.centos.x86_64
--> Processing Dependency: container-selinux >= 2:2.21-2 for package: 2:docker-common-1.12.6-68.gitec8512b.el7.centos.x86_64
---> Package libseccomp.x86_64 0:2.3.1-3.el7 will be installed
--> Running transaction check
---> Package container-selinux.noarch 2:2.33-1.git86f33cd.el7 will be installed
--> Processing Dependency: policycoreutils >= 2.5-11 for package: 2:container-selinux-2.33-1.git86f33cd.el7.noarch
--> Processing Dependency: policycoreutils-python for package: 2:container-selinux-2.33-1.git86f33cd.el7.noarch
---> Package container-storage-setup.noarch 0:0.8.0-3.git1d27ecf.el7 will be installed
---> Package lvm2.x86_64 7:2.02.171-8.el7 will be installed
--> Processing Dependency: lvm2-libs = 7:2.02.171-8.el7 for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: device-mapper-persistent-data >= 0.7.0-0.1.rc6 for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: liblvm2app.so.2.2(Base)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_138)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_135)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_133)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_128)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_113)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_110)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper-event.so.1.02(Base)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: liblvm2app.so.2.2()(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper-event.so.1.02()(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
---> Package oci-register-machine.x86_64 1:0-3.13.gitcd1e331.el7 will be installed
---> Package oci-systemd-hook.x86_64 1:0.1.14-1.git1ba44c6.el7 will be installed
--> Processing Dependency: libyajl.so.2()(64bit) for package: 1:oci-systemd-hook-0.1.14-1.git1ba44c6.el7.x86_64
---> Package oci-umount.x86_64 2:2.3.0-1.git51e7c50.el7 will be installed
---> Package skopeo-containers.x86_64 1:0.1.26-2.dev.git2e8377a.el7.centos will be installed
--> Running transaction check
---> Package device-mapper-event-libs.x86_64 7:1.02.140-8.el7 will be installed
---> Package device-mapper-libs.x86_64 7:1.02.107-5.el7 will be updated
--> Processing Dependency: device-mapper-libs = 7:1.02.107-5.el7 for package: 7:device-mapper-1.02.107-5.el7.x86_64
---> Package device-mapper-libs.x86_64 7:1.02.140-8.el7 will be an update
---> Package device-mapper-persistent-data.x86_64 0:0.7.0-0.1.rc6.el7_4.1 will be installed
---> Package lvm2-libs.x86_64 7:2.02.171-8.el7 will be installed
--> Processing Dependency: device-mapper-event = 7:1.02.140-8.el7 for package: 7:lvm2-libs-2.02.171-8.el7.x86_64
---> Package policycoreutils.x86_64 0:2.2.5-20.el7 will be updated
---> Package policycoreutils.x86_64 0:2.5-17.1.el7 will be an update
--> Processing Dependency: libsepol >= 2.5-6 for package: policycoreutils-2.5-17.1.el7.x86_64
--> Processing Dependency: libselinux-utils >= 2.5-6 for package: policycoreutils-2.5-17.1.el7.x86_64
--> Processing Dependency: libsepol.so.1(LIBSEPOL_1.1)(64bit) for package: policycoreutils-2.5-17.1.el7.x86_64
--> Processing Dependency: libsepol.so.1(LIBSEPOL_1.0)(64bit) for package: policycoreutils-2.5-17.1.el7.x86_64
--> Processing Dependency: libsemanage.so.1(LIBSEMANAGE_1.1)(64bit) for package: policycoreutils-2.5-17.1.el7.x86_64
---> Package policycoreutils-python.x86_64 0:2.5-17.1.el7 will be installed
--> Processing Dependency: setools-libs >= 3.3.8-1 for package: policycoreutils-python-2.5-17.1.el7.x86_64
--> Processing Dependency: libsemanage-python >= 2.5-5 for package: policycoreutils-python-2.5-17.1.el7.x86_64
--> Processing Dependency: audit-libs-python >= 2.1.3-4 for package: policycoreutils-python-2.5-17.1.el7.x86_64
--> Processing Dependency: python-IPy for package: policycoreutils-python-2.5-17.1.el7.x86_64
--> Processing Dependency: libqpol.so.1(VERS_1.4)(64bit) for package: policycoreutils-python-2.5-17.1.el7.x86_64
--> Processing Dependency: libqpol.so.1(VERS_1.2)(64bit) for package: policycoreutils-python-2.5-17.1.el7.x86_64
--> Processing Dependency: libcgroup for package: policycoreutils-python-2.5-17.1.el7.x86_64
--> Processing Dependency: libapol.so.4(VERS_4.0)(64bit) for package: policycoreutils-python-2.5-17.1.el7.x86_64
--> Processing Dependency: checkpolicy for package: policycoreutils-python-2.5-17.1.el7.x86_64
--> Processing Dependency: libqpol.so.1()(64bit) for package: policycoreutils-python-2.5-17.1.el7.x86_64
--> Processing Dependency: libapol.so.4()(64bit) for package: policycoreutils-python-2.5-17.1.el7.x86_64
---> Package yajl.x86_64 0:2.0.4-4.el7 will be installed
--> Running transaction check
---> Package audit-libs-python.x86_64 0:2.7.6-3.el7 will be installed
--> Processing Dependency: audit-libs(x86-64) = 2.7.6-3.el7 for package: audit-libs-python-2.7.6-3.el7.x86_64
---> Package checkpolicy.x86_64 0:2.5-4.el7 will be installed
---> Package device-mapper.x86_64 7:1.02.107-5.el7 will be updated
---> Package device-mapper.x86_64 7:1.02.140-8.el7 will be an update
---> Package device-mapper-event.x86_64 7:1.02.140-8.el7 will be installed
---> Package libcgroup.x86_64 0:0.41-13.el7 will be installed
---> Package libselinux-utils.x86_64 0:2.2.2-6.el7 will be updated
---> Package libselinux-utils.x86_64 0:2.5-11.el7 will be an update
--> Processing Dependency: libselinux(x86-64) = 2.5-11.el7 for package: libselinux-utils-2.5-11.el7.x86_64
---> Package libsemanage.x86_64 0:2.1.10-18.el7 will be updated
---> Package libsemanage.x86_64 0:2.5-8.el7 will be an update
---> Package libsemanage-python.x86_64 0:2.5-8.el7 will be installed
---> Package libsepol.x86_64 0:2.1.9-3.el7 will be updated
---> Package libsepol.x86_64 0:2.5-6.el7 will be an update
---> Package python-IPy.noarch 0:0.75-6.el7 will be installed
---> Package setools-libs.x86_64 0:3.3.8-1.1.el7 will be installed
--> Running transaction check
---> Package audit-libs.x86_64 0:2.4.1-5.el7 will be updated
--> Processing Dependency: audit-libs = 2.4.1-5.el7 for package: audit-2.4.1-5.el7.x86_64
---> Package audit-libs.x86_64 0:2.7.6-3.el7 will be an update
---> Package libselinux.x86_64 0:2.2.2-6.el7 will be updated
--> Processing Dependency: libselinux = 2.2.2-6.el7 for package: libselinux-python-2.2.2-6.el7.x86_64
---> Package libselinux.x86_64 0:2.5-11.el7 will be an update
--> Running transaction check
---> Package audit.x86_64 0:2.4.1-5.el7 will be updated
---> Package audit.x86_64 0:2.7.6-3.el7 will be an update
---> Package libselinux-python.x86_64 0:2.2.2-6.el7 will be updated
---> Package libselinux-python.x86_64 0:2.5-11.el7 will be an update
--> Processing Conflict: libsemanage-2.5-8.el7.x86_64 conflicts selinux-policy-base < 3.13.1-66
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
---> Package selinux-policy-targeted.noarch 0:3.13.1-60.el7 will be updated
---> Package selinux-policy-targeted.noarch 0:3.13.1-166.el7_4.7 will be an update
--> Processing Dependency: selinux-policy = 3.13.1-166.el7_4.7 for package: selinux-policy-targeted-3.13.1-166.el7_4.7.noarch
--> Processing Dependency: selinux-policy = 3.13.1-166.el7_4.7 for package: selinux-policy-targeted-3.13.1-166.el7_4.7.noarch
--> Running transaction check
---> Package selinux-policy.noarch 0:3.13.1-60.el7 will be updated
---> Package selinux-policy.noarch 0:3.13.1-166.el7_4.7 will be an update
--> Processing Conflict: libselinux-2.5-11.el7.x86_64 conflicts systemd < 219-20
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
---> Package systemd.x86_64 0:219-19.el7 will be updated
--> Processing Dependency: systemd = 219-19.el7 for package: systemd-sysv-219-19.el7.x86_64
---> Package systemd.x86_64 0:219-42.el7_4.6 will be an update
--> Processing Dependency: systemd-libs = 219-42.el7_4.6 for package: systemd-219-42.el7_4.6.x86_64
--> Running transaction check
---> Package systemd-libs.x86_64 0:219-19.el7 will be updated
--> Processing Dependency: systemd-libs = 219-19.el7 for package: libgudev1-219-19.el7.x86_64
---> Package systemd-libs.x86_64 0:219-42.el7_4.6 will be an update
---> Package systemd-sysv.x86_64 0:219-19.el7 will be updated
---> Package systemd-sysv.x86_64 0:219-42.el7_4.6 will be an update
--> Running transaction check
---> Package libgudev1.x86_64 0:219-19.el7 will be updated
---> Package libgudev1.x86_64 0:219-42.el7_4.6 will be an update
--> Processing Conflict: systemd-219-42.el7_4.6.x86_64 conflicts dracut < 033-499
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
---> Package dracut.x86_64 0:033-359.el7 will be updated
--> Processing Dependency: dracut = 033-359.el7 for package: dracut-network-033-359.el7.x86_64
--> Processing Dependency: dracut = 033-359.el7 for package: dracut-config-rescue-033-359.el7.x86_64
---> Package dracut.x86_64 0:033-502.el7_4.1 will be an update
--> Running transaction check
---> Package dracut-config-rescue.x86_64 0:033-359.el7 will be updated
---> Package dracut-config-rescue.x86_64 0:033-502.el7_4.1 will be an update
---> Package dracut-network.x86_64 0:033-359.el7 will be updated
---> Package dracut-network.x86_64 0:033-502.el7_4.1 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================
Installing:
docker x86_64 2:1.12.6-68.gitec8512b.el7.centos extras 15 M
Updating:
dracut x86_64 033-502.el7_4.1 updates 321 k
selinux-policy-targeted noarch 3.13.1-166.el7_4.7 updates 6.5 M
systemd x86_64 219-42.el7_4.6 updates 5.2 M
Installing for dependencies:
audit-libs-python x86_64 2.7.6-3.el7 base 73 k
checkpolicy x86_64 2.5-4.el7 base 290 k
container-selinux noarch 2:2.33-1.git86f33cd.el7 extras 31 k
container-storage-setup noarch 0.8.0-3.git1d27ecf.el7 extras 33 k
device-mapper-event x86_64 7:1.02.140-8.el7 base 180 k
device-mapper-event-libs x86_64 7:1.02.140-8.el7 base 179 k
device-mapper-persistent-data x86_64 0.7.0-0.1.rc6.el7_4.1 updates 400 k
docker-client x86_64 2:1.12.6-68.gitec8512b.el7.centos extras 3.4 M
docker-common x86_64 2:1.12.6-68.gitec8512b.el7.centos extras 82 k
libcgroup x86_64 0.41-13.el7 base 65 k
libseccomp x86_64 2.3.1-3.el7 base 56 k
libsemanage-python x86_64 2.5-8.el7 base 104 k
lvm2 x86_64 7:2.02.171-8.el7 base 1.3 M
lvm2-libs x86_64 7:2.02.171-8.el7 base 1.0 M
oci-register-machine x86_64 1:0-3.13.gitcd1e331.el7 extras 1.1 M
oci-systemd-hook x86_64 1:0.1.14-1.git1ba44c6.el7 extras 32 k
oci-umount x86_64 2:2.3.0-1.git51e7c50.el7 extras 30 k
policycoreutils-python x86_64 2.5-17.1.el7 base 446 k
python-IPy noarch 0.75-6.el7 base 32 k
setools-libs x86_64 3.3.8-1.1.el7 base 612 k
skopeo-containers x86_64 1:0.1.26-2.dev.git2e8377a.el7.centos extras 12 k
yajl x86_64 2.0.4-4.el7 base 39 k
Updating for dependencies:
audit x86_64 2.7.6-3.el7 base 242 k
audit-libs x86_64 2.7.6-3.el7 base 96 k
device-mapper x86_64 7:1.02.140-8.el7 base 280 k
device-mapper-libs x86_64 7:1.02.140-8.el7 base 312 k
dracut-config-rescue x86_64 033-502.el7_4.1 updates 56 k
dracut-network x86_64 033-502.el7_4.1 updates 98 k
libgudev1 x86_64 219-42.el7_4.6 updates 84 k
libselinux x86_64 2.5-11.el7 base 162 k
libselinux-python x86_64 2.5-11.el7 base 234 k
libselinux-utils x86_64 2.5-11.el7 base 151 k
libsemanage x86_64 2.5-8.el7 base 145 k
libsepol x86_64 2.5-6.el7 base 288 k
policycoreutils x86_64 2.5-17.1.el7 base 858 k
selinux-policy noarch 3.13.1-166.el7_4.7 updates 437 k
systemd-libs x86_64 219-42.el7_4.6 updates 376 k
systemd-sysv x86_64 219-42.el7_4.6 updates 71 k
Transaction Summary
===============================================================================================================================================================
Install 1 Package (+22 Dependent packages)
Upgrade 3 Packages (+16 Dependent packages)
Total download size: 40 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/42): container-selinux-2.33-1.git86f33cd.el7.noarch.rpm | 31 kB 00:00:00
(2/42): container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch.rpm | 33 kB 00:00:00
(3/42): audit-2.7.6-3.el7.x86_64.rpm | 242 kB 00:00:00
(4/42): device-mapper-event-1.02.140-8.el7.x86_64.rpm | 180 kB 00:00:00
(5/42): checkpolicy-2.5-4.el7.x86_64.rpm | 290 kB 00:00:00
(6/42): device-mapper-event-libs-1.02.140-8.el7.x86_64.rpm | 179 kB 00:00:00
(7/42): audit-libs-2.7.6-3.el7.x86_64.rpm | 96 kB 00:00:00
(8/42): device-mapper-persistent-data-0.7.0-0.1.rc6.el7_4.1.x86_64.rpm | 400 kB 00:00:00
(9/42): device-mapper-libs-1.02.140-8.el7.x86_64.rpm | 312 kB 00:00:00
(10/42): device-mapper-1.02.140-8.el7.x86_64.rpm | 280 kB 00:00:00
(11/42): docker-common-1.12.6-68.gitec8512b.el7.centos.x86_64.rpm | 82 kB 00:00:00
(12/42): audit-libs-python-2.7.6-3.el7.x86_64.rpm | 73 kB 00:00:01
(13/42): dracut-033-502.el7_4.1.x86_64.rpm | 321 kB 00:00:00
(14/42): dracut-config-rescue-033-502.el7_4.1.x86_64.rpm | 56 kB 00:00:01
(15/42): libcgroup-0.41-13.el7.x86_64.rpm | 65 kB 00:00:00
(16/42): libseccomp-2.3.1-3.el7.x86_64.rpm | 56 kB 00:00:00
(17/42): libselinux-2.5-11.el7.x86_64.rpm | 162 kB 00:00:00
(18/42): dracut-network-033-502.el7_4.1.x86_64.rpm | 98 kB 00:00:01
(19/42): libselinux-python-2.5-11.el7.x86_64.rpm | 234 kB 00:00:00
(20/42): libsemanage-2.5-8.el7.x86_64.rpm | 145 kB 00:00:00
(21/42): libgudev1-219-42.el7_4.6.x86_64.rpm | 84 kB 00:00:01
(22/42): libsemanage-python-2.5-8.el7.x86_64.rpm | 104 kB 00:00:00
(23/42): libselinux-utils-2.5-11.el7.x86_64.rpm | 151 kB 00:00:00
(24/42): lvm2-2.02.171-8.el7.x86_64.rpm | 1.3 MB 00:00:01
(25/42): libsepol-2.5-6.el7.x86_64.rpm | 288 kB 00:00:02
(26/42): lvm2-libs-2.02.171-8.el7.x86_64.rpm | 1.0 MB 00:00:04
(27/42): oci-umount-2.3.0-1.git51e7c50.el7.x86_64.rpm | 30 kB 00:00:00
(28/42): policycoreutils-2.5-17.1.el7.x86_64.rpm | 858 kB 00:00:01
(29/42): policycoreutils-python-2.5-17.1.el7.x86_64.rpm | 446 kB 00:00:00
(30/42): python-IPy-0.75-6.el7.noarch.rpm | 32 kB 00:00:00
(31/42): selinux-policy-3.13.1-166.el7_4.7.noarch.rpm | 437 kB 00:00:00
(32/42): oci-systemd-hook-0.1.14-1.git1ba44c6.el7.x86_64.rpm | 32 kB 00:00:06
(33/42): docker-1.12.6-68.gitec8512b.el7.centos.x86_64.rpm | 15 MB 00:00:13
(34/42): skopeo-containers-0.1.26-2.dev.git2e8377a.el7.centos.x86_64.rpm | 12 kB 00:00:00
(35/42): setools-libs-3.3.8-1.1.el7.x86_64.rpm | 612 kB 00:00:01
(36/42): selinux-policy-targeted-3.13.1-166.el7_4.7.noarch.rpm | 6.5 MB 00:00:05
(37/42): systemd-sysv-219-42.el7_4.6.x86_64.rpm | 71 kB 00:00:00
(38/42): yajl-2.0.4-4.el7.x86_64.rpm | 39 kB 00:00:00
(39/42): systemd-libs-219-42.el7_4.6.x86_64.rpm | 376 kB 00:00:03
(40/42): oci-register-machine-0-3.13.gitcd1e331.el7.x86_64.rpm | 1.1 MB 00:00:13
(41/42): systemd-219-42.el7_4.6.x86_64.rpm | 5.2 MB 00:00:05
docker-client-1.12.6-68.gitec8 FAILED =========================================- ] 131 B/s | 37 MB 06:30:44 ETA
http://mirrors.zju.edu.cn/centos/7.4.1708/extras/x86_64/Packages/docker-client-1.12.6-68.gitec8512b.el7.centos.x86_64.rpm: [Errno 12] Timeout on http://mirrors.zju.edu.cn/centos/7.4.1708/extras/x86_64/Packages/docker-client-1.12.6-68.gitec8512b.el7.centos.x86_64.rpm: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
Trying other mirror.
(42/42): docker-client-1.12.6-68.gitec8512b.el7.centos.x86_64.rpm | 3.4 MB 00:00:01
---------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 627 kB/s | 40 MB 00:01:05
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : libsepol-2.5-6.el7.x86_64 1/61
Updating : libselinux-2.5-11.el7.x86_64 2/61
Updating : systemd-libs-219-42.el7_4.6.x86_64 3/61
Updating : audit-libs-2.7.6-3.el7.x86_64 4/61
Updating : systemd-219-42.el7_4.6.x86_64 5/61
Updating : libsemanage-2.5-8.el7.x86_64 6/61
Updating : 7:device-mapper-libs-1.02.140-8.el7.x86_64 7/61
Updating : 7:device-mapper-1.02.140-8.el7.x86_64 8/61
Installing : 7:device-mapper-event-libs-1.02.140-8.el7.x86_64 9/61
Updating : dracut-033-502.el7_4.1.x86_64 10/61
Updating : libselinux-utils-2.5-11.el7.x86_64 11/61
Updating : policycoreutils-2.5-17.1.el7.x86_64 12/61
Updating : selinux-policy-3.13.1-166.el7_4.7.noarch 13/61
Installing : yajl-2.0.4-4.el7.x86_64 14/61
Installing : 1:oci-systemd-hook-0.1.14-1.git1ba44c6.el7.x86_64 15/61
Installing : 2:oci-umount-2.3.0-1.git51e7c50.el7.x86_64 16/61
Updating : selinux-policy-targeted-3.13.1-166.el7_4.7.noarch 17/61
Installing : 7:device-mapper-event-1.02.140-8.el7.x86_64 18/61
Installing : 7:lvm2-libs-2.02.171-8.el7.x86_64 19/61
Installing : libsemanage-python-2.5-8.el7.x86_64 20/61
Installing : 1:oci-register-machine-0-3.13.gitcd1e331.el7.x86_64 21/61
Installing : libcgroup-0.41-13.el7.x86_64 22/61
Updating : systemd-sysv-219-42.el7_4.6.x86_64 23/61
Installing : audit-libs-python-2.7.6-3.el7.x86_64 24/61
Updating : libselinux-python-2.5-11.el7.x86_64 25/61
Installing : setools-libs-3.3.8-1.1.el7.x86_64 26/61
Installing : device-mapper-persistent-data-0.7.0-0.1.rc6.el7_4.1.x86_64 27/61
Installing : 7:lvm2-2.02.171-8.el7.x86_64 28/61
Created symlink from /etc/systemd/system/sysinit.target.wants/lvm2-lvmpolld.socket to /usr/lib/systemd/system/lvm2-lvmpolld.socket.
Installing : container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch 29/61
Installing : python-IPy-0.75-6.el7.noarch 30/61
Installing : checkpolicy-2.5-4.el7.x86_64 31/61
Installing : policycoreutils-python-2.5-17.1.el7.x86_64 32/61
Installing : 2:container-selinux-2.33-1.git86f33cd.el7.noarch 33/61
Installing : libseccomp-2.3.1-3.el7.x86_64 34/61
Installing : 1:skopeo-containers-0.1.26-2.dev.git2e8377a.el7.centos.x86_64 35/61
Installing : 2:docker-common-1.12.6-68.gitec8512b.el7.centos.x86_64 36/61
Installing : 2:docker-client-1.12.6-68.gitec8512b.el7.centos.x86_64 37/61
Installing : 2:docker-1.12.6-68.gitec8512b.el7.centos.x86_64 38/61
Updating : audit-2.7.6-3.el7.x86_64 39/61
Updating : dracut-config-rescue-033-502.el7_4.1.x86_64 40/61
Updating : dracut-network-033-502.el7_4.1.x86_64 41/61
Updating : libgudev1-219-42.el7_4.6.x86_64 42/61
Cleanup : selinux-policy-targeted-3.13.1-60.el7.noarch 43/61
Cleanup : selinux-policy-3.13.1-60.el7.noarch 44/61
Cleanup : dracut-network-033-359.el7.x86_64 45/61
Cleanup : dracut-config-rescue-033-359.el7.x86_64 46/61
Cleanup : policycoreutils-2.2.5-20.el7.x86_64 47/61
Cleanup : libsemanage-2.1.10-18.el7.x86_64 48/61
Cleanup : audit-2.4.1-5.el7.x86_64 49/61
Cleanup : 7:device-mapper-libs-1.02.107-5.el7.x86_64 50/61
Cleanup : 7:device-mapper-1.02.107-5.el7.x86_64 51/61
Cleanup : systemd-sysv-219-19.el7.x86_64 52/61
Cleanup : libselinux-utils-2.2.2-6.el7.x86_64 53/61
Cleanup : dracut-033-359.el7.x86_64 54/61
Cleanup : systemd-219-19.el7.x86_64 55/61
Cleanup : libgudev1-219-19.el7.x86_64 56/61
Cleanup : systemd-libs-219-19.el7.x86_64 57/61
Cleanup : libselinux-python-2.2.2-6.el7.x86_64 58/61
Cleanup : libselinux-2.2.2-6.el7.x86_64 59/61
Cleanup : libsepol-2.1.9-3.el7.x86_64 60/61
Cleanup : audit-libs-2.4.1-5.el7.x86_64 61/61
Verifying : libselinux-utils-2.5-11.el7.x86_64 1/61
Verifying : 2:container-selinux-2.33-1.git86f33cd.el7.noarch 2/61
Verifying : systemd-219-42.el7_4.6.x86_64 3/61
Verifying : libsepol-2.5-6.el7.x86_64 4/61
Verifying : 1:skopeo-containers-0.1.26-2.dev.git2e8377a.el7.centos.x86_64 5/61
Verifying : libseccomp-2.3.1-3.el7.x86_64 6/61
Verifying : policycoreutils-python-2.5-17.1.el7.x86_64 7/61
Verifying : checkpolicy-2.5-4.el7.x86_64 8/61
Verifying : 1:oci-register-machine-0-3.13.gitcd1e331.el7.x86_64 9/61
Verifying : audit-libs-2.7.6-3.el7.x86_64 10/61
Verifying : 7:device-mapper-event-libs-1.02.140-8.el7.x86_64 11/61
Verifying : 7:lvm2-2.02.171-8.el7.x86_64 12/61
Verifying : systemd-libs-219-42.el7_4.6.x86_64 13/61
Verifying : 2:docker-common-1.12.6-68.gitec8512b.el7.centos.x86_64 14/61
Verifying : 2:docker-1.12.6-68.gitec8512b.el7.centos.x86_64 15/61
Verifying : 2:docker-client-1.12.6-68.gitec8512b.el7.centos.x86_64 16/61
Verifying : python-IPy-0.75-6.el7.noarch 17/61
Verifying : 7:device-mapper-1.02.140-8.el7.x86_64 18/61
Verifying : dracut-config-rescue-033-502.el7_4.1.x86_64 19/61
Verifying : libcgroup-0.41-13.el7.x86_64 20/61
Verifying : audit-2.7.6-3.el7.x86_64 21/61
Verifying : dracut-033-502.el7_4.1.x86_64 22/61
Verifying : 7:device-mapper-libs-1.02.140-8.el7.x86_64 23/61
Verifying : policycoreutils-2.5-17.1.el7.x86_64 24/61
Verifying : libsemanage-python-2.5-8.el7.x86_64 25/61
Verifying : selinux-policy-3.13.1-166.el7_4.7.noarch 26/61
Verifying : 1:oci-systemd-hook-0.1.14-1.git1ba44c6.el7.x86_64 27/61
Verifying : selinux-policy-targeted-3.13.1-166.el7_4.7.noarch 28/61
Verifying : 2:oci-umount-2.3.0-1.git51e7c50.el7.x86_64 29/61
Verifying : 7:lvm2-libs-2.02.171-8.el7.x86_64 30/61
Verifying : device-mapper-persistent-data-0.7.0-0.1.rc6.el7_4.1.x86_64 31/61
Verifying : libsemanage-2.5-8.el7.x86_64 32/61
Verifying : yajl-2.0.4-4.el7.x86_64 33/61
Verifying : dracut-network-033-502.el7_4.1.x86_64 34/61
Verifying : libselinux-python-2.5-11.el7.x86_64 35/61
Verifying : libselinux-2.5-11.el7.x86_64 36/61
Verifying : 7:device-mapper-event-1.02.140-8.el7.x86_64 37/61
Verifying : systemd-sysv-219-42.el7_4.6.x86_64 38/61
Verifying : audit-libs-python-2.7.6-3.el7.x86_64 39/61
Verifying : libgudev1-219-42.el7_4.6.x86_64 40/61
Verifying : container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch 41/61
Verifying : setools-libs-3.3.8-1.1.el7.x86_64 42/61
Verifying : dracut-config-rescue-033-359.el7.x86_64 43/61
Verifying : selinux-policy-targeted-3.13.1-60.el7.noarch 44/61
Verifying : systemd-219-19.el7.x86_64 45/61
Verifying : dracut-033-359.el7.x86_64 46/61
Verifying : systemd-sysv-219-19.el7.x86_64 47/61
Verifying : 7:device-mapper-libs-1.02.107-5.el7.x86_64 48/61
Verifying : systemd-libs-219-19.el7.x86_64 49/61
Verifying : libselinux-utils-2.2.2-6.el7.x86_64 50/61
Verifying : libsepol-2.1.9-3.el7.x86_64 51/61
Verifying : libsemanage-2.1.10-18.el7.x86_64 52/61
Verifying : selinux-policy-3.13.1-60.el7.noarch 53/61
Verifying : dracut-network-033-359.el7.x86_64 54/61
Verifying : audit-libs-2.4.1-5.el7.x86_64 55/61
Verifying : libselinux-python-2.2.2-6.el7.x86_64 56/61
Verifying : libgudev1-219-19.el7.x86_64 57/61
Verifying : policycoreutils-2.2.5-20.el7.x86_64 58/61
Verifying : audit-2.4.1-5.el7.x86_64 59/61
Verifying : 7:device-mapper-1.02.107-5.el7.x86_64 60/61
Verifying : libselinux-2.2.2-6.el7.x86_64 61/61
Installed:
docker.x86_64 2:1.12.6-68.gitec8512b.el7.centos
Dependency Installed:
audit-libs-python.x86_64 0:2.7.6-3.el7 checkpolicy.x86_64 0:2.5-4.el7
container-selinux.noarch 2:2.33-1.git86f33cd.el7 container-storage-setup.noarch 0:0.8.0-3.git1d27ecf.el7
device-mapper-event.x86_64 7:1.02.140-8.el7 device-mapper-event-libs.x86_64 7:1.02.140-8.el7
device-mapper-persistent-data.x86_64 0:0.7.0-0.1.rc6.el7_4.1 docker-client.x86_64 2:1.12.6-68.gitec8512b.el7.centos
docker-common.x86_64 2:1.12.6-68.gitec8512b.el7.centos libcgroup.x86_64 0:0.41-13.el7
libseccomp.x86_64 0:2.3.1-3.el7 libsemanage-python.x86_64 0:2.5-8.el7
lvm2.x86_64 7:2.02.171-8.el7 lvm2-libs.x86_64 7:2.02.171-8.el7
oci-register-machine.x86_64 1:0-3.13.gitcd1e331.el7 oci-systemd-hook.x86_64 1:0.1.14-1.git1ba44c6.el7
oci-umount.x86_64 2:2.3.0-1.git51e7c50.el7 policycoreutils-python.x86_64 0:2.5-17.1.el7
python-IPy.noarch 0:0.75-6.el7 setools-libs.x86_64 0:3.3.8-1.1.el7
skopeo-containers.x86_64 1:0.1.26-2.dev.git2e8377a.el7.centos yajl.x86_64 0:2.0.4-4.el7
Updated:
dracut.x86_64 0:033-502.el7_4.1 selinux-policy-targeted.noarch 0:3.13.1-166.el7_4.7 systemd.x86_64 0:219-42.el7_4.6
Dependency Updated:
audit.x86_64 0:2.7.6-3.el7 audit-libs.x86_64 0:2.7.6-3.el7 device-mapper.x86_64 7:1.02.140-8.el7
device-mapper-libs.x86_64 7:1.02.140-8.el7 dracut-config-rescue.x86_64 0:033-502.el7_4.1 dracut-network.x86_64 0:033-502.el7_4.1
libgudev1.x86_64 0:219-42.el7_4.6 libselinux.x86_64 0:2.5-11.el7 libselinux-python.x86_64 0:2.5-11.el7
libselinux-utils.x86_64 0:2.5-11.el7 libsemanage.x86_64 0:2.5-8.el7 libsepol.x86_64 0:2.5-6.el7
policycoreutils.x86_64 0:2.5-17.1.el7 selinux-policy.noarch 0:3.13.1-166.el7_4.7 systemd-libs.x86_64 0:219-42.el7_4.6
systemd-sysv.x86_64 0:219-42.el7_4.6
Complete!
[root@server01 yum.repos.d]# systemctl start docker.service
[root@server01 yum.repos.d]# systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2018-01-26 15:02:16 CST; 22s ago
Docs: http://docs.docker.com
Main PID: 56946 (dockerd-current)
CGroup: /system.slice/docker.service
啓動docker服務
systemctl start docker.service
關閉docker服務
systemctl stop docker.service
Docker的鏡像稱爲image,容器稱爲container。對於Docker來說,image是靜態的,類似於操作系統快照,而container則是動態的,是image的運行實例。
查看已下載的鏡像
[root@server01 yum.repos.d]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos latest ff426288ea90 2 weeks ago 207.2 MB
啓動一個容器,有一個image名稱爲centos,那麼比如現在我們啓動這個image的container並且進入到這個container的bash命令行中
docker run:啓動container
centos:你想要啓動的image
-t:進入終端
-i:獲得一個交互式的連接,通過獲取container的輸入
/bin/bash:在container中啓動一個bash shell
[root@server01 yum.repos.d]# docker run -i -t centos /bin/bash
Unable to find image 'centos:latest' locally
Trying to pull repository docker.io/library/centos ...
latest: Pulling from docker.io/library/centos
af4b0a2388c6: Pull complete
Digest: sha256:2671f7a3eea36ce43609e9fe7435ade83094291055f1c96d9d1d1d7c0b986a5d
[root@880523e0b518 /]#
查看所有容器,在container所在的外部操作系統中運行,-a是所有,不加-a是運行着的容器
[root@server01 yum.repos.d]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
880523e0b518 centos "/bin/bash" 13 minutes ago Exited (0) 18 seconds ago happy_bhabha
啓動一個容器,這是容器在後臺運行
[root@server01 yum.repos.d]# docker start 880523e0b518
880523e0b518
[root@server01 yum.repos.d]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
880523e0b518 centos "/bin/bash" 14 minutes ago Up 19 seconds happy_bhabha
進入該容器終端
[root@server01 yum.repos.d]# docker attach 880523e0b518
[root@880523e0b518 /]# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@880523e0b518 /]#
退出當前容器,或者Ctrl+d
[root@880523e0b518 /]# exit
exit
[root@server01 yum.repos.d]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
啓動一個容器使用“docker attach”命令進入container(容器)有一個缺點,那就是每次從container中退出到前臺時,container也跟着退出了。
要想退出container時,讓container仍然在後臺運行着,可以使用“docker exec -it”命令。每次使用這個命令進入container,當退出container後,container仍然在後臺運行
[root@server01 yum.repos.d]# docker start 880523e0b518
880523e0b518
[root@server01 yum.repos.d]# docker exec -it 880523e0b518 /bin/bash
[root@880523e0b518 /]# exit
exit
[root@server01 yum.repos.d]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
880523e0b518 centos "/bin/bash" 21 minutes ago Up 15 seconds happy_bhabha