Install Docker on Oracle Linux 7
在Oracle Linux 7.1上安装Docker
1.首先使用正确的yum设置来升级Oracle Linux 7.1实例。为了安装最新的Docker版本(18.9.1.ce),需要ol7_latest,ol7_uekr4与ol7_addons启用
[root@localhost /]# cd /etc/yum.repos.d/ [root@localhost /]#wget http://yum.oracle.com/public-yum-ol7.repo [root@localhost yum.repos.d]# vi public-yum-ol7.repo [ol7_latest] name=Oracle Linux $releasever Latest ($basearch) baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/latest/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1 enabled=1 [ol7_UEKR4] name=Latest Unbreakable Enterprise Kernel Release 4 for Oracle Linux $releasever ($basearch) baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/UEKR4/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1 enabled=1 [ol7_addons] name=Oracle Linux $releasever Add ons ($basearch) baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/addons/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1 enabled=1
2.开始安装docker
[root@localhost yum.repos.d]# yum install docker-engine Loaded plugins: langpacks ol7_UEKR4 | 2.5 kB 00:00:00 ol7_addons | 1.2 kB 00:00:00 ol7_latest | 2.7 kB 00:00:00 (1/4): ol7_addons/x86_64/updateinfo | 60 kB 00:00:00 (2/4): ol7_UEKR4/x86_64/updateinfo | 82 kB 00:00:01 (3/4): ol7_addons/x86_64/primary | 82 kB 00:00:02 (4/4): ol7_UEKR4/x86_64/primary_db | 4.0 MB 00:03:38 ol7_addons 328/328 Resolving Dependencies --> Running transaction check ---> Package docker-engine.x86_64 0:18.09.1.ol-1.0.5.el7 will be installed --> Processing Dependency: container-selinux >= 2:2.77 for package: docker-engine-18.09.1.ol-1.0.5.el7.x86_64 --> Processing Dependency: libseccomp >= 2.3 for package: docker-engine-18.09.1.ol-1.0.5.el7.x86_64 --> Processing Dependency: containerd for package: docker-engine-18.09.1.ol-1.0.5.el7.x86_64 --> Processing Dependency: docker-cli for package: docker-engine-18.09.1.ol-1.0.5.el7.x86_64 --> Processing Dependency: runc for package: docker-engine-18.09.1.ol-1.0.5.el7.x86_64 --> Processing Dependency: libdevmapper.so.1.02(DM_1_02_97)(64bit) for package: docker-engine-18.09.1.ol-1.0.5.el7.x86_64 --> Processing Dependency: libsystemd.so.0(LIBSYSTEMD_209)(64bit) for package: docker-engine-18.09.1.ol-1.0.5.el7.x86_64 --> Processing Dependency: libsystemd.so.0()(64bit) for package: docker-engine-18.09.1.ol-1.0.5.el7.x86_64 --> Running transaction check ---> Package container-selinux.noarch 2:2.77-5.el7 will be installed --> Processing Dependency: selinux-policy-base >= 3.13.1-216.el7 for package: 2:container-selinux-2.77-5.el7.noarch --> Processing Dependency: selinux-policy >= 3.13.1-216.el7 for package: 2:container-selinux-2.77-5.el7.noarch --> Processing Dependency: policycoreutils >= 2.5-11 for package: 2:container-selinux-2.77-5.el7.noarch --> Processing Dependency: selinux-policy-targeted >= 3.13.1-216.el7 for package: 2:container-selinux-2.77-5.el7.noarch ---> Package containerd.x86_64 0:1.2.0-1.0.5.el7 will be installed ---> Package device-mapper-libs.x86_64 7:1.02.93-3.el7 will be updated --> Processing Dependency: device-mapper-libs = 7:1.02.93-3.el7 for package: 7:device-mapper-1.02.93-3.el7.x86_64 ---> Package device-mapper-libs.x86_64 7:1.02.149-10.0.3.el7_6.8 will be an update ---> Package docker-cli.x86_64 0:18.09.1.ol-1.0.5.el7 will be installed ---> Package libseccomp.x86_64 0:2.1.1-2.el7 will be updated ---> Package libseccomp.x86_64 0:2.3.1-3.el7 will be an update ---> Package runc.x86_64 0:1.0.0-19.rc5.git4bb1fe4.0.3.el7 will be installed --> Processing Dependency: criu for package: runc-1.0.0-19.rc5.git4bb1fe4.0.3.el7.x86_64 ---> Package systemd-libs.x86_64 0:208-20.0.1.el7 will be updated --> Processing Dependency: systemd-libs = 208-20.0.1.el7 for package: systemd-208-20.0.1.el7.x86_64 ---> Package systemd-libs.x86_64 0:219-62.0.4.el7_6.7 will be an update --> Processing Dependency: liblz4.so.1()(64bit) for package: systemd-libs-219-62.0.4.el7_6.7.x86_64 --> Running transaction check ---> Package criu.x86_64 0:3.9-5.el7 will be installed --> Processing Dependency: libprotobuf-c.so.1(LIBPROTOBUF_C_1.0.0)(64bit) for package: criu-3.9-5.el7.x86_64 --> Processing Dependency: libnl-3.so.200(libnl_3)(64bit) for package: criu-3.9-5.el7.x86_64 --> Processing Dependency: libprotobuf-c.so.1()(64bit) for package: criu-3.9-5.el7.x86_64 --> Processing Dependency: libnet.so.1()(64bit) for package: criu-3.9-5.el7.x86_64 ---> Package device-mapper.x86_64 7:1.02.93-3.el7 will be updated --> Processing Dependency: device-mapper = 7:1.02.93-3.el7 for package: 7:device-mapper-event-1.02.93-3.el7.x86_64 ---> Package device-mapper.x86_64 7:1.02.149-10.0.3.el7_6.8 will be an update ---> Package lz4.x86_64 0:1.7.5-2.0.1.el7 will be installed ---> Package policycoreutils.x86_64 0:2.2.5-15.0.1.el7 will be updated --> Processing Dependency: policycoreutils = 2.2.5-15.0.1.el7 for package: policycoreutils-python-2.2.5-15.0.1.el7.x86_64 ---> Package policycoreutils.x86_64 0:2.5-29.0.1.el7_6.1 will be an update --> Processing Dependency: libsemanage >= 2.5-14 for package: policycoreutils-2.5-29.0.1.el7_6.1.x86_64 --> Processing Dependency: libsepol >= 2.5-10 for package: policycoreutils-2.5-29.0.1.el7_6.1.x86_64 --> Processing Dependency: libselinux-utils >= 2.5-14 for package: policycoreutils-2.5-29.0.1.el7_6.1.x86_64 --> Processing Dependency: libsepol.so.1(LIBSEPOL_1.1)(64bit) for package: policycoreutils-2.5-29.0.1.el7_6.1.x86_64 --> Processing Dependency: libsemanage.so.1(LIBSEMANAGE_1.1)(64bit) for package: policycoreutils-2.5-29.0.1.el7_6.1.x86_64 --> Processing Dependency: libsepol.so.1(LIBSEPOL_1.0)(64bit) for package: policycoreutils-2.5-29.0.1.el7_6.1.x86_64 ---> Package selinux-policy.noarch 0:3.13.1-23.0.1.el7 will be updated ---> Package selinux-policy.noarch 0:3.13.1-229.0.3.el7_6.12 will be an update ---> Package selinux-policy-targeted.noarch 0:3.13.1-23.0.1.el7 will be updated ---> Package selinux-policy-targeted.noarch 0:3.13.1-229.0.3.el7_6.12 will be an update ---> Package systemd.x86_64 0:208-20.0.1.el7 will be updated --> Processing Dependency: systemd = 208-20.0.1.el7 for package: libgudev1-208-20.0.1.el7.x86_64 --> Processing Dependency: systemd = 208-20.0.1.el7 for package: systemd-sysv-208-20.0.1.el7.x86_64 --> Processing Dependency: systemd = 208-20.0.1.el7 for package: systemd-python-208-20.0.1.el7.x86_64 ---> Package systemd.x86_64 0:219-62.0.4.el7_6.7 will be an update --> Processing Dependency: kmod >= 18-4 for package: systemd-219-62.0.4.el7_6.7.x86_64 --> Processing Dependency: libcryptsetup.so.12(CRYPTSETUP_2.0)(64bit) for package: systemd-219-62.0.4.el7_6.7.x86_64 --> Processing Dependency: libcryptsetup.so.12()(64bit) for package: systemd-219-62.0.4.el7_6.7.x86_64 --> Running transaction check ---> Package cryptsetup-libs.x86_64 0:1.6.6-3.el7 will be updated --> Processing Dependency: cryptsetup-libs = 1.6.6-3.el7 for package: cryptsetup-python-1.6.6-3.el7.x86_64 --> Processing Dependency: cryptsetup-libs(x86-64) = 1.6.6-3.el7 for package: cryptsetup-1.6.6-3.el7.x86_64 ---> Package cryptsetup-libs.x86_64 0:2.0.3-3.el7 will be an update ---> Package device-mapper-event.x86_64 7:1.02.93-3.el7 will be updated --> Processing Dependency: device-mapper-event = 7:1.02.93-3.el7 for package: 7:lvm2-libs-2.02.115-3.el7.x86_64 ---> Package device-mapper-event.x86_64 7:1.02.149-10.0.3.el7_6.8 will be an update --> Processing Dependency: device-mapper-event-libs = 7:1.02.149-10.0.3.el7_6.8 for package: 7:device-mapper-event-1.02.149-10.0.3.el7_6.8.x86_64 ---> Package kmod.x86_64 0:14-10.el7 will be updated ---> Package kmod.x86_64 0:20-23.0.1.el7 will be an update ---> Package libgudev1.x86_64 0:208-20.0.1.el7 will be updated ---> Package libgudev1.x86_64 0:219-62.0.4.el7_6.7 will be an update --> Processing Dependency: glib2 >= 2.42 for package: libgudev1-219-62.0.4.el7_6.7.x86_64 ---> Package libnet.x86_64 0:1.1.6-7.el7 will be installed ---> Package libnl3.x86_64 0:3.2.21-8.0.1.el7 will be updated --> Processing Dependency: libnl3 = 3.2.21-8.0.1.el7 for package: libnl3-cli-3.2.21-8.0.1.el7.x86_64 ---> Package libnl3.x86_64 0:3.2.28-4.el7 will be an update ---> Package libselinux-utils.x86_64 0:2.2.2-6.el7 will be updated ---> Package libselinux-utils.x86_64 0:2.5-14.1.el7 will be an update --> Processing Dependency: libselinux(x86-64) = 2.5-14.1.el7 for package: libselinux-utils-2.5-14.1.el7.x86_64 ---> Package libsemanage.x86_64 0:2.1.10-16.el7 will be updated --> Processing Dependency: libsemanage = 2.1.10-16.el7 for package: libsemanage-python-2.1.10-16.el7.x86_64 ---> Package libsemanage.x86_64 0:2.5-14.el7 will be an update ---> Package libsepol.x86_64 0:2.1.9-3.el7 will be updated ---> Package libsepol.x86_64 0:2.5-10.el7 will be an update ---> Package policycoreutils-python.x86_64 0:2.2.5-15.0.1.el7 will be updated ---> Package policycoreutils-python.x86_64 0:2.5-29.0.1.el7_6.1 will be an update --> Processing Dependency: setools-libs >= 3.3.8-4 for package: policycoreutils-python-2.5-29.0.1.el7_6.1.x86_64 ---> Package protobuf-c.x86_64 0:1.0.2-3.el7 will be installed ---> Package systemd-python.x86_64 0:208-20.0.1.el7 will be updated ---> Package systemd-python.x86_64 0:219-62.0.4.el7_6.7 will be an update ---> Package systemd-sysv.x86_64 0:208-20.0.1.el7 will be updated ---> Package systemd-sysv.x86_64 0:219-62.0.4.el7_6.7 will be an update --> Running transaction check ---> Package cryptsetup.x86_64 0:1.6.6-3.el7 will be updated ---> Package cryptsetup.x86_64 0:2.0.3-3.el7 will be an update ---> Package cryptsetup-python.x86_64 0:1.6.6-3.el7 will be updated ---> Package cryptsetup-python.x86_64 0:2.0.3-3.el7 will be an update ---> Package device-mapper-event-libs.x86_64 7:1.02.93-3.el7 will be updated ---> Package device-mapper-event-libs.x86_64 7:1.02.149-10.0.3.el7_6.8 will be an update ---> Package glib2.x86_64 0:2.40.0-4.el7 will be updated ---> Package glib2.x86_64 0:2.56.1-4.el7_6 will be an update ---> Package libnl3-cli.x86_64 0:3.2.21-8.0.1.el7 will be updated ---> Package libnl3-cli.x86_64 0:3.2.28-4.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-14.1.el7 will be an update ---> Package libsemanage-python.x86_64 0:2.1.10-16.el7 will be updated ---> Package libsemanage-python.x86_64 0:2.5-14.el7 will be an update ---> Package lvm2-libs.x86_64 7:2.02.115-3.el7 will be updated --> Processing Dependency: lvm2-libs = 7:2.02.115-3.el7 for package: 7:lvm2-2.02.115-3.el7.x86_64 --> Processing Dependency: lvm2-libs = 7:2.02.115-3.el7 for package: 7:lvm2-python-libs-2.02.115-3.el7.x86_64 ---> Package lvm2-libs.x86_64 7:2.02.180-10.0.3.el7_6.8 will be an update ---> Package setools-libs.x86_64 0:3.3.7-46.el7 will be updated ---> Package setools-libs.x86_64 0:3.3.8-4.el7 will be an update --> Running transaction check ---> Package libselinux-python.x86_64 0:2.2.2-6.el7 will be updated ---> Package libselinux-python.x86_64 0:2.5-14.1.el7 will be an update ---> Package lvm2.x86_64 7:2.02.115-3.el7 will be updated ---> Package lvm2.x86_64 7:2.02.180-10.0.3.el7_6.8 will be an update --> Processing Dependency: device-mapper-persistent-data >= 0.7.0-0.1.rc6 for package: 7:lvm2-2.02.180-10.0.3.el7_6.8.x86_64 ---> Package lvm2-python-libs.x86_64 7:2.02.115-3.el7 will be updated ---> Package lvm2-python-libs.x86_64 7:2.02.180-10.0.3.el7_6.8 will be an update --> Running transaction check ---> Package device-mapper-persistent-data.x86_64 0:0.4.1-2.el7 will be updated ---> Package device-mapper-persistent-data.x86_64 0:0.7.3-3.el7 will be an update --> Processing Conflict: systemd-219-62.0.4.el7_6.7.x86_64 conflicts initscripts < 9.49.28-1 --> Restarting Dependency Resolution with new changes. --> Running transaction check ---> Package initscripts.x86_64 0:9.49.24-1.0.1.el7 will be updated ---> Package initscripts.x86_64 0:9.49.46-1.0.1.el7 will be an update --> Processing Conflict: initscripts-9.49.46-1.0.1.el7.x86_64 conflicts redhat-release < 7.5-0.11 --> Restarting Dependency Resolution with new changes. --> Running transaction check ---> Package redhat-release-server.x86_64 1:7.1-1.0.2.el7 will be updated ---> Package redhat-release-server.x86_64 1:7.6-4.0.1.el7 will be an update --> Processing Conflict: initscripts-9.49.46-1.0.1.el7.x86_64 conflicts oraclelinux-release < 7:7.5-1.0.3 --> Restarting Dependency Resolution with new changes. --> Running transaction check ---> Package oraclelinux-release.x86_64 7:7.1-1.0.5.el7 will be updated ---> Package oraclelinux-release.x86_64 7:7.6-1.0.15.el7 will be an update --> Processing Conflict: systemd-219-62.0.4.el7_6.7.x86_64 conflicts dracut < 033-243 --> Restarting Dependency Resolution with new changes. --> Running transaction check ---> Package dracut.x86_64 0:033-240.0.1.el7 will be updated --> Processing Dependency: dracut = 033-240.0.1.el7 for package: dracut-config-rescue-033-240.0.1.el7.x86_64 --> Processing Dependency: dracut = 033-240.0.1.el7 for package: dracut-network-033-240.0.1.el7.x86_64 ---> Package dracut.x86_64 0:033-554.0.3.el7 will be an update --> Running transaction check ---> Package dracut-config-rescue.x86_64 0:033-240.0.1.el7 will be updated ---> Package dracut-config-rescue.x86_64 0:033-554.0.3.el7 will be an update ---> Package dracut-network.x86_64 0:033-240.0.1.el7 will be updated ---> Package dracut-network.x86_64 0:033-554.0.3.el7 will be an update --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================================================================================================ Package Arch Version Repository Size ============================================================================================================================================================================================================================================ Installing: docker-engine x86_64 18.09.1.ol-1.0.5.el7 ol7_addons 19 M Updating: dracut x86_64 033-554.0.3.el7 ol7_latest 328 k initscripts x86_64 9.49.46-1.0.1.el7 ol7_latest 439 k oraclelinux-release x86_64 7:7.6-1.0.15.el7 ol7_latest 54 k redhat-release-server x86_64 1:7.6-4.0.1.el7 ol7_latest 9.8 k Installing for dependencies: container-selinux noarch 2:2.77-5.el7 ol7_addons 37 k containerd x86_64 1.2.0-1.0.5.el7 ol7_addons 21 M criu x86_64 3.9-5.el7 ol7_latest 432 k docker-cli x86_64 18.09.1.ol-1.0.5.el7 ol7_addons 14 M libnet x86_64 1.1.6-7.el7 ol7_latest 57 k lz4 x86_64 1.7.5-2.0.1.el7 ol7_latest 98 k protobuf-c x86_64 1.0.2-3.el7 ol7_latest 27 k runc x86_64 1.0.0-19.rc5.git4bb1fe4.0.3.el7 ol7_addons 1.9 M Updating for dependencies: cryptsetup x86_64 2.0.3-3.el7 ol7_latest 153 k cryptsetup-libs x86_64 2.0.3-3.el7 ol7_latest 337 k cryptsetup-python x86_64 2.0.3-3.el7 ol7_latest 35 k device-mapper x86_64 7:1.02.149-10.0.3.el7_6.8 ol7_latest 293 k device-mapper-event x86_64 7:1.02.149-10.0.3.el7_6.8 ol7_latest 188 k device-mapper-event-libs x86_64 7:1.02.149-10.0.3.el7_6.8 ol7_latest 188 k device-mapper-libs x86_64 7:1.02.149-10.0.3.el7_6.8 ol7_latest 320 k device-mapper-persistent-data x86_64 0.7.3-3.el7 ol7_latest 404 k dracut-config-rescue x86_64 033-554.0.3.el7 ol7_latest 60 k dracut-network x86_64 033-554.0.3.el7 ol7_latest 102 k glib2 x86_64 2.56.1-4.el7_6 ol7_latest 2.5 M kmod x86_64 20-23.0.1.el7 ol7_latest 121 k libgudev1 x86_64 219-62.0.4.el7_6.7 ol7_latest 96 k libnl3 x86_64 3.2.28-4.el7 ol7_latest 277 k libnl3-cli x86_64 3.2.28-4.el7 ol7_latest 159 k libseccomp x86_64 2.3.1-3.el7 ol7_latest 55 k libselinux x86_64 2.5-14.1.el7 ol7_latest 162 k libselinux-python x86_64 2.5-14.1.el7 ol7_latest 235 k libselinux-utils x86_64 2.5-14.1.el7 ol7_latest 151 k libsemanage x86_64 2.5-14.el7 ol7_latest 150 k libsemanage-python x86_64 2.5-14.el7 ol7_latest 112 k libsepol x86_64 2.5-10.el7 ol7_latest 297 k lvm2 x86_64 7:2.02.180-10.0.3.el7_6.8 ol7_latest 1.3 M lvm2-libs x86_64 7:2.02.180-10.0.3.el7_6.8 ol7_latest 1.1 M lvm2-python-libs x86_64 7:2.02.180-10.0.3.el7_6.8 ol7_latest 186 k policycoreutils x86_64 2.5-29.0.1.el7_6.1 ol7_latest 916 k policycoreutils-python x86_64 2.5-29.0.1.el7_6.1 ol7_latest 455 k selinux-policy noarch 3.13.1-229.0.3.el7_6.12 ol7_latest 484 k selinux-policy-targeted noarch 3.13.1-229.0.3.el7_6.12 ol7_latest 6.9 M setools-libs x86_64 3.3.8-4.el7 ol7_latest 620 k systemd x86_64 219-62.0.4.el7_6.7 ol7_latest 5.1 M systemd-libs x86_64 219-62.0.4.el7_6.7 ol7_latest 407 k systemd-python x86_64 219-62.0.4.el7_6.7 ol7_latest 133 k systemd-sysv x86_64 219-62.0.4.el7_6.7 ol7_latest 84 k Transaction Summary ============================================================================================================================================================================================================================================ Install 1 Package (+ 8 Dependent packages) Upgrade 4 Packages (+34 Dependent packages) Total download size: 81 M Is this ok [y/d/N]: y Downloading packages: No Presto metadata available for ol7_latest warning: /var/cache/yum/x86_64/7Server/ol7_latest/packages/cryptsetup-2.0.3-3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY ] 373 kB/s | 1.6 MB 00:03:39 ETA Public key for cryptsetup-2.0.3-3.el7.x86_64.rpm is not installed (1/47): cryptsetup-2.0.3-3.el7.x86_64.rpm | 153 kB 00:00:04 (2/47): criu-3.9-5.el7.x86_64.rpm | 432 kB 00:00:04 Public key for container-selinux-2.77-5.el7.noarch.rpm is not installed (3/47): container-selinux-2.77-5.el7.noarch.rpm | 37 kB 00:00:04 (4/47): cryptsetup-python-2.0.3-3.el7.x86_64.rpm | 35 kB 00:00:00 (5/47): cryptsetup-libs-2.0.3-3.el7.x86_64.rpm | 337 kB 00:00:01 (6/47): device-mapper-event-1.02.149-10.0.3.el7_6.8.x86_64.rpm | 188 kB 00:00:00 (7/47): device-mapper-1.02.149-10.0.3.el7_6.8.x86_64.rpm | 293 kB 00:00:01 (8/47): device-mapper-event-libs-1.02.149-10.0.3.el7_6.8.x86_64.rpm | 188 kB 00:00:00 (9/47): device-mapper-persistent-data-0.7.3-3.el7.x86_64.rpm | 404 kB 00:00:00 (10/47): device-mapper-libs-1.02.149-10.0.3.el7_6.8.x86_64.rpm | 320 kB 00:00:02 (11/47): containerd-1.2.0-1.0.5.el7.x86_64.rpm | 21 MB 00:00:13 (12/47): dracut-config-rescue-033-554.0.3.el7.x86_64.rpm | 60 kB 00:00:01 (13/47): dracut-network-033-554.0.3.el7.x86_64.rpm | 102 kB 00:00:00 (14/47): dracut-033-554.0.3.el7.x86_64.rpm | 328 kB 00:00:02 (15/47): initscripts-9.49.46-1.0.1.el7.x86_64.rpm | 439 kB 00:00:00 (16/47): kmod-20-23.0.1.el7.x86_64.rpm | 121 kB 00:00:00 (17/47): libgudev1-219-62.0.4.el7_6.7.x86_64.rpm | 96 kB 00:00:00 (18/47): glib2-2.56.1-4.el7_6.x86_64.rpm | 2.5 MB 00:00:02 (19/47): libnl3-3.2.28-4.el7.x86_64.rpm | 277 kB 00:00:00 (20/47): docker-cli-18.09.1.ol-1.0.5.el7.x86_64.rpm | 14 MB 00:00:12 (21/47): libnet-1.1.6-7.el7.x86_64.rpm | 57 kB 00:00:01 (22/47): libseccomp-2.3.1-3.el7.x86_64.rpm | 55 kB 00:00:00 (23/47): libselinux-2.5-14.1.el7.x86_64.rpm | 162 kB 00:00:00 (24/47): libnl3-cli-3.2.28-4.el7.x86_64.rpm | 159 kB 00:00:00 (25/47): libselinux-python-2.5-14.1.el7.x86_64.rpm | 235 kB 00:00:00 (26/47): libselinux-utils-2.5-14.1.el7.x86_64.rpm | 151 kB 00:00:00 (27/47): libsemanage-python-2.5-14.el7.x86_64.rpm | 112 kB 00:00:00 (28/47): libsemanage-2.5-14.el7.x86_64.rpm | 150 kB 00:00:00 (29/47): libsepol-2.5-10.el7.x86_64.rpm | 297 kB 00:00:00 (30/47): lvm2-2.02.180-10.0.3.el7_6.8.x86_64.rpm | 1.3 MB 00:00:00 (31/47): lvm2-python-libs-2.02.180-10.0.3.el7_6.8.x86_64.rpm | 186 kB 00:00:00 (32/47): lvm2-libs-2.02.180-10.0.3.el7_6.8.x86_64.rpm | 1.1 MB 00:00:01 (33/47): lz4-1.7.5-2.0.1.el7.x86_64.rpm | 98 kB 00:00:00 (34/47): oraclelinux-release-7.6-1.0.15.el7.x86_64.rpm | 54 kB 00:00:00 (35/47): policycoreutils-2.5-29.0.1.el7_6.1.x86_64.rpm | 916 kB 00:00:00 (36/47): policycoreutils-python-2.5-29.0.1.el7_6.1.x86_64.rpm | 455 kB 00:00:00 (37/47): redhat-release-server-7.6-4.0.1.el7.x86_64.rpm | 9.8 kB 00:00:00 (38/47): docker-engine-18.09.1.ol-1.0.5.el7.x86_64.rpm | 19 MB 00:00:10 (39/47): selinux-policy-3.13.1-229.0.3.el7_6.12.noarch.rpm | 484 kB 00:00:00 (40/47): protobuf-c-1.0.2-3.el7.x86_64.rpm | 27 kB 00:00:02 (41/47): setools-libs-3.3.8-4.el7.x86_64.rpm | 620 kB 00:00:00 (42/47): runc-1.0.0-19.rc5.git4bb1fe4.0.3.el7.x86_64.rpm | 1.9 MB 00:00:04 (43/47): selinux-policy-targeted-3.13.1-229.0.3.el7_6.12.noarch.rpm | 6.9 MB 00:00:03 (44/47): systemd-libs-219-62.0.4.el7_6.7.x86_64.rpm | 407 kB 00:00:00 (45/47): systemd-python-219-62.0.4.el7_6.7.x86_64.rpm | 133 kB 00:00:00 (46/47): systemd-sysv-219-62.0.4.el7_6.7.x86_64.rpm | 84 kB 00:00:00 (47/47): systemd-219-62.0.4.el7_6.7.x86_64.rpm | 5.1 MB 00:00:04 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 2.8 MB/s | 81 MB 00:00:29 Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle Importing GPG key 0xEC551F03: Userid : "Oracle OSS group (Open Source Software group) " Fingerprint: 4214 4123 fecf c55b 9086 313d 72f9 7b74 ec55 1f03 Package : 7:oraclelinux-release-7.1-1.0.5.el7.x86_64 (@anaconda/7.1) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle Is this ok [y/N]: y Running transaction check Running transaction test Transaction test succeeded Running transaction Updating : libsepol-2.5-10.el7.x86_64 1/85 Updating : libselinux-2.5-14.1.el7.x86_64 2/85 Updating : libsemanage-2.5-14.el7.x86_64 3/85 Installing : lz4-1.7.5-2.0.1.el7.x86_64 4/85 Updating : systemd-libs-219-62.0.4.el7_6.7.x86_64 5/85 Updating : 1:redhat-release-server-7.6-4.0.1.el7.x86_64 6/85 Updating : cryptsetup-libs-2.0.3-3.el7.x86_64 7/85 Updating : 7:device-mapper-libs-1.02.149-10.0.3.el7_6.8.x86_64 8/85 Updating : 7:device-mapper-1.02.149-10.0.3.el7_6.8.x86_64 9/85 Updating : systemd-219-62.0.4.el7_6.7.x86_64 10/85 Updating : dracut-033-554.0.3.el7.x86_64 11/85 Updating : kmod-20-23.0.1.el7.x86_64 12/85 Updating : 7:device-mapper-event-libs-1.02.149-10.0.3.el7_6.8.x86_64 13/85 Updating : libseccomp-2.3.1-3.el7.x86_64 14/85 Updating : glib2-2.56.1-4.el7_6.x86_64 15/85 Updating : libselinux-utils-2.5-14.1.el7.x86_64 16/85 Updating : policycoreutils-2.5-29.0.1.el7_6.1.x86_64 17/85 Updating : selinux-policy-3.13.1-229.0.3.el7_6.12.noarch 18/85 Updating : libnl3-3.2.28-4.el7.x86_64 19/85 Updating : selinux-policy-targeted-3.13.1-229.0.3.el7_6.12.noarch 20/85 Updating : 7:device-mapper-event-1.02.149-10.0.3.el7_6.8.x86_64 21/85 Updating : 7:lvm2-libs-2.02.180-10.0.3.el7_6.8.x86_64 22/85 Updating : 7:oraclelinux-release-7.6-1.0.15.el7.x86_64 23/85 Updating : libsemanage-python-2.5-14.el7.x86_64 24/85 Updating : libselinux-python-2.5-14.1.el7.x86_64 25/85 Updating : setools-libs-3.3.8-4.el7.x86_64 26/85 Updating : policycoreutils-python-2.5-29.0.1.el7_6.1.x86_64 27/85 Installing : 2:container-selinux-2.77-5.el7.noarch 28/85 Installing : containerd-1.2.0-1.0.5.el7.x86_64 29/85 Installing : docker-cli-18.09.1.ol-1.0.5.el7.x86_64 30/85 Installing : libnet-1.1.6-7.el7.x86_64 31/85 Installing : protobuf-c-1.0.2-3.el7.x86_64 32/85 Installing : criu-3.9-5.el7.x86_64 33/85 Installing : runc-1.0.0-19.rc5.git4bb1fe4.0.3.el7.x86_64 34/85 Updating : device-mapper-persistent-data-0.7.3-3.el7.x86_64 35/85 Updating : 7:lvm2-2.02.180-10.0.3.el7_6.8.x86_64 36/85 Created symlink from /etc/systemd/system/sysinit.target.wants/lvm2-lvmpolld.socket to /usr/lib/systemd/system/lvm2-lvmpolld.socket. Installing : docker-engine-18.09.1.ol-1.0.5.el7.x86_64 37/85 Updating : initscripts-9.49.46-1.0.1.el7.x86_64 38/85 Updating : 7:lvm2-python-libs-2.02.180-10.0.3.el7_6.8.x86_64 39/85 Updating : libnl3-cli-3.2.28-4.el7.x86_64 40/85 Updating : libgudev1-219-62.0.4.el7_6.7.x86_64 41/85 Updating : dracut-network-033-554.0.3.el7.x86_64 42/85 Updating : dracut-config-rescue-033-554.0.3.el7.x86_64 43/85 Updating : systemd-sysv-219-62.0.4.el7_6.7.x86_64 44/85 Updating : systemd-python-219-62.0.4.el7_6.7.x86_64 45/85 Updating : cryptsetup-python-2.0.3-3.el7.x86_64 46/85 Updating : cryptsetup-2.0.3-3.el7.x86_64 47/85 Cleanup : 7:lvm2-2.02.115-3.el7.x86_64 48/85 Cleanup : policycoreutils-python-2.2.5-15.0.1.el7.x86_64 49/85 UPGRADE: Automatically re-enabling default systemd units: brandbot.path rhel-autorelabel.service rhel-autorelabel-mark.service rhel-configure.service rhel-dmesg.service rhel-domainname.service rhel-import-state.service rhel-loadmodules.service rhel-readonly.service Cleanup : initscripts-9.49.24-1.0.1.el7.x86_64 50/85 Cleanup : libgudev1-208-20.0.1.el7.x86_64 51/85 Cleanup : selinux-policy-targeted-3.13.1-23.0.1.el7.noarch 52/85 Cleanup : selinux-policy-3.13.1-23.0.1.el7.noarch 53/85 Cleanup : 7:oraclelinux-release-7.1-1.0.5.el7.x86_64 54/85 Cleanup : dracut-config-rescue-033-240.0.1.el7.x86_64 55/85 Cleanup : systemd-sysv-208-20.0.1.el7.x86_64 56/85 Cleanup : dracut-network-033-240.0.1.el7.x86_64 57/85 Cleanup : policycoreutils-2.2.5-15.0.1.el7.x86_64 58/85 Cleanup : systemd-python-208-20.0.1.el7.x86_64 59/85 Cleanup : dracut-033-240.0.1.el7.x86_64 60/85 Cleanup : setools-libs-3.3.7-46.el7.x86_64 61/85 Cleanup : libselinux-utils-2.2.2-6.el7.x86_64 62/85 Cleanup : glib2-2.40.0-4.el7.x86_64 63/85 Cleanup : libselinux-python-2.2.2-6.el7.x86_64 64/85 Cleanup : libsemanage-python-2.1.10-16.el7.x86_64 65/85 Cleanup : libsemanage-2.1.10-16.el7.x86_64 66/85 Cleanup : cryptsetup-1.6.6-3.el7.x86_64 67/85 Cleanup : libnl3-cli-3.2.21-8.0.1.el7.x86_64 68/85 Cleanup : cryptsetup-python-1.6.6-3.el7.x86_64 69/85 Cleanup : 7:lvm2-python-libs-2.02.115-3.el7.x86_64 70/85 Cleanup : 7:lvm2-libs-2.02.115-3.el7.x86_64 71/85 Cleanup : 7:device-mapper-event-1.02.93-3.el7.x86_64 72/85 Cleanup : 7:device-mapper-event-libs-1.02.93-3.el7.x86_64 73/85 Cleanup : cryptsetup-libs-1.6.6-3.el7.x86_64 74/85 Cleanup : systemd-208-20.0.1.el7.x86_64 75/85 Cleanup : 7:device-mapper-1.02.93-3.el7.x86_64 76/85 Cleanup : 7:device-mapper-libs-1.02.93-3.el7.x86_64 77/85 Cleanup : 1:redhat-release-server-7.1-1.0.2.el7.x86_64 78/85 Cleanup : systemd-libs-208-20.0.1.el7.x86_64 79/85 Cleanup : libselinux-2.2.2-6.el7.x86_64 80/85 Cleanup : libsepol-2.1.9-3.el7.x86_64 81/85 Cleanup : kmod-14-10.el7.x86_64 82/85 Cleanup : libnl3-3.2.21-8.0.1.el7.x86_64 83/85 Cleanup : device-mapper-persistent-data-0.4.1-2.el7.x86_64 84/85 Cleanup : libseccomp-2.1.1-2.el7.x86_64 85/85 Verifying : 7:device-mapper-event-libs-1.02.149-10.0.3.el7_6.8.x86_64 1/85 Verifying : glib2-2.56.1-4.el7_6.x86_64 2/85 Verifying : docker-engine-18.09.1.ol-1.0.5.el7.x86_64 3/85 Verifying : policycoreutils-2.5-29.0.1.el7_6.1.x86_64 4/85 Verifying : libseccomp-2.3.1-3.el7.x86_64 5/85 Verifying : kmod-20-23.0.1.el7.x86_64 6/85 Verifying : 7:device-mapper-libs-1.02.149-10.0.3.el7_6.8.x86_64 7/85 Verifying : 7:lvm2-python-libs-2.02.180-10.0.3.el7_6.8.x86_64 8/85 Verifying : libgudev1-219-62.0.4.el7_6.7.x86_64 9/85 Verifying : cryptsetup-libs-2.0.3-3.el7.x86_64 10/85 Verifying : selinux-policy-3.13.1-229.0.3.el7_6.12.noarch 11/85 Verifying : 7:lvm2-2.02.180-10.0.3.el7_6.8.x86_64 12/85 Verifying : 2:container-selinux-2.77-5.el7.noarch 13/85 Verifying : initscripts-9.49.46-1.0.1.el7.x86_64 14/85 Verifying : cryptsetup-python-2.0.3-3.el7.x86_64 15/85 Verifying : libsemanage-python-2.5-14.el7.x86_64 16/85 Verifying : 1:redhat-release-server-7.6-4.0.1.el7.x86_64 17/85 Verifying : 7:oraclelinux-release-7.6-1.0.15.el7.x86_64 18/85 Verifying : device-mapper-persistent-data-0.7.3-3.el7.x86_64 19/85 Verifying : dracut-network-033-554.0.3.el7.x86_64 20/85 Verifying : systemd-sysv-219-62.0.4.el7_6.7.x86_64 21/85 Verifying : containerd-1.2.0-1.0.5.el7.x86_64 22/85 Verifying : policycoreutils-python-2.5-29.0.1.el7_6.1.x86_64 23/85 Verifying : protobuf-c-1.0.2-3.el7.x86_64 24/85 Verifying : dracut-config-rescue-033-554.0.3.el7.x86_64 25/85 Verifying : libselinux-2.5-14.1.el7.x86_64 26/85 Verifying : systemd-219-62.0.4.el7_6.7.x86_64 27/85 Verifying : criu-3.9-5.el7.x86_64 28/85 Verifying : libsemanage-2.5-14.el7.x86_64 29/85 Verifying : systemd-libs-219-62.0.4.el7_6.7.x86_64 30/85 Verifying : libnl3-cli-3.2.28-4.el7.x86_64 31/85 Verifying : systemd-python-219-62.0.4.el7_6.7.x86_64 32/85 Verifying : libselinux-python-2.5-14.1.el7.x86_64 33/85 Verifying : libnet-1.1.6-7.el7.x86_64 34/85 Verifying : libsepol-2.5-10.el7.x86_64 35/85 Verifying : runc-1.0.0-19.rc5.git4bb1fe4.0.3.el7.x86_64 36/85 Verifying : selinux-policy-targeted-3.13.1-229.0.3.el7_6.12.noarch 37/85 Verifying : libselinux-utils-2.5-14.1.el7.x86_64 38/85 Verifying : dracut-033-554.0.3.el7.x86_64 39/85 Verifying : 7:device-mapper-event-1.02.149-10.0.3.el7_6.8.x86_64 40/85 Verifying : 7:device-mapper-1.02.149-10.0.3.el7_6.8.x86_64 41/85 Verifying : libnl3-3.2.28-4.el7.x86_64 42/85 Verifying : docker-cli-18.09.1.ol-1.0.5.el7.x86_64 43/85 Verifying : 7:lvm2-libs-2.02.180-10.0.3.el7_6.8.x86_64 44/85 Verifying : setools-libs-3.3.8-4.el7.x86_64 45/85 Verifying : lz4-1.7.5-2.0.1.el7.x86_64 46/85 Verifying : cryptsetup-2.0.3-3.el7.x86_64 47/85 Verifying : libselinux-utils-2.2.2-6.el7.x86_64 48/85 Verifying : libsemanage-python-2.1.10-16.el7.x86_64 49/85 Verifying : dracut-config-rescue-033-240.0.1.el7.x86_64 50/85 Verifying : systemd-libs-208-20.0.1.el7.x86_64 51/85 Verifying : systemd-sysv-208-20.0.1.el7.x86_64 52/85 Verifying : policycoreutils-2.2.5-15.0.1.el7.x86_64 53/85 Verifying : policycoreutils-python-2.2.5-15.0.1.el7.x86_64 54/85 Verifying : cryptsetup-python-1.6.6-3.el7.x86_64 55/85 Verifying : 7:oraclelinux-release-7.1-1.0.5.el7.x86_64 56/85 Verifying : 7:device-mapper-event-libs-1.02.93-3.el7.x86_64 57/85 Verifying : dracut-033-240.0.1.el7.x86_64 58/85 Verifying : cryptsetup-1.6.6-3.el7.x86_64 59/85 Verifying : setools-libs-3.3.7-46.el7.x86_64 60/85 Verifying : initscripts-9.49.24-1.0.1.el7.x86_64 61/85 Verifying : kmod-14-10.el7.x86_64 62/85 Verifying : systemd-python-208-20.0.1.el7.x86_64 63/85 Verifying : cryptsetup-libs-1.6.6-3.el7.x86_64 64/85 Verifying : dracut-network-033-240.0.1.el7.x86_64 65/85 Verifying : glib2-2.40.0-4.el7.x86_64 66/85 Verifying : libnl3-cli-3.2.21-8.0.1.el7.x86_64 67/85 Verifying : libnl3-3.2.21-8.0.1.el7.x86_64 68/85 Verifying : 7:device-mapper-event-1.02.93-3.el7.x86_64 69/85 Verifying : libselinux-python-2.2.2-6.el7.x86_64 70/85 Verifying : libsemanage-2.1.10-16.el7.x86_64 71/85 Verifying : libseccomp-2.1.1-2.el7.x86_64 72/85 Verifying : libsepol-2.1.9-3.el7.x86_64 73/85 Verifying : 7:lvm2-python-libs-2.02.115-3.el7.x86_64 74/85 Verifying : 7:device-mapper-1.02.93-3.el7.x86_64 75/85 Verifying : selinux-policy-3.13.1-23.0.1.el7.noarch 76/85 Verifying : libselinux-2.2.2-6.el7.x86_64 77/85 Verifying : 1:redhat-release-server-7.1-1.0.2.el7.x86_64 78/85 Verifying : libgudev1-208-20.0.1.el7.x86_64 79/85 Verifying : 7:lvm2-2.02.115-3.el7.x86_64 80/85 Verifying : 7:lvm2-libs-2.02.115-3.el7.x86_64 81/85 Verifying : 7:device-mapper-libs-1.02.93-3.el7.x86_64 82/85 Verifying : device-mapper-persistent-data-0.4.1-2.el7.x86_64 83/85 Verifying : selinux-policy-targeted-3.13.1-23.0.1.el7.noarch 84/85 Verifying : systemd-208-20.0.1.el7.x86_64 85/85 Installed: docker-engine.x86_64 0:18.09.1.ol-1.0.5.el7 Dependency Installed: container-selinux.noarch 2:2.77-5.el7 containerd.x86_64 0:1.2.0-1.0.5.el7 criu.x86_64 0:3.9-5.el7 docker-cli.x86_64 0:18.09.1.ol-1.0.5.el7 libnet.x86_64 0:1.1.6-7.el7 lz4.x86_64 0:1.7.5-2.0.1.el7 protobuf-c.x86_64 0:1.0.2-3.el7 runc.x86_64 0:1.0.0-19.rc5.git4bb1fe4.0.3.el7 Updated: dracut.x86_64 0:033-554.0.3.el7 initscripts.x86_64 0:9.49.46-1.0.1.el7 oraclelinux-release.x86_64 7:7.6-1.0.15.el7 redhat-release-server.x86_64 1:7.6-4.0.1.el7 Dependency Updated: cryptsetup.x86_64 0:2.0.3-3.el7 cryptsetup-libs.x86_64 0:2.0.3-3.el7 cryptsetup-python.x86_64 0:2.0.3-3.el7 device-mapper.x86_64 7:1.02.149-10.0.3.el7_6.8 device-mapper-event.x86_64 7:1.02.149-10.0.3.el7_6.8 device-mapper-event-libs.x86_64 7:1.02.149-10.0.3.el7_6.8 device-mapper-libs.x86_64 7:1.02.149-10.0.3.el7_6.8 device-mapper-persistent-data.x86_64 0:0.7.3-3.el7 dracut-config-rescue.x86_64 0:033-554.0.3.el7 dracut-network.x86_64 0:033-554.0.3.el7 glib2.x86_64 0:2.56.1-4.el7_6 kmod.x86_64 0:20-23.0.1.el7 libgudev1.x86_64 0:219-62.0.4.el7_6.7 libnl3.x86_64 0:3.2.28-4.el7 libnl3-cli.x86_64 0:3.2.28-4.el7 libseccomp.x86_64 0:2.3.1-3.el7 libselinux.x86_64 0:2.5-14.1.el7 libselinux-python.x86_64 0:2.5-14.1.el7 libselinux-utils.x86_64 0:2.5-14.1.el7 libsemanage.x86_64 0:2.5-14.el7 libsemanage-python.x86_64 0:2.5-14.el7 libsepol.x86_64 0:2.5-10.el7 lvm2.x86_64 7:2.02.180-10.0.3.el7_6.8 lvm2-libs.x86_64 7:2.02.180-10.0.3.el7_6.8 lvm2-python-libs.x86_64 7:2.02.180-10.0.3.el7_6.8 policycoreutils.x86_64 0:2.5-29.0.1.el7_6.1 policycoreutils-python.x86_64 0:2.5-29.0.1.el7_6.1 selinux-policy.noarch 0:3.13.1-229.0.3.el7_6.12 selinux-policy-targeted.noarch 0:3.13.1-229.0.3.el7_6.12 setools-libs.x86_64 0:3.3.8-4.el7 systemd.x86_64 0:219-62.0.4.el7_6.7 systemd-libs.x86_64 0:219-62.0.4.el7_6.7 systemd-python.x86_64 0:219-62.0.4.el7_6.7 systemd-sysv.x86_64 0:219-62.0.4.el7_6.7 Complete!
一旦安装完成,就可以启动docker服务
[root@localhost soft]# service docker start Redirecting to /bin/systemctl start docker.service [root@localhost soft]# systemctl enable docker [root@localhost soft]# service docker status Redirecting to /bin/systemctl status docker.service 鈼[0m docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/docker.service.d 鈹斺攢docker-sysconfig.conf Active: active (running) since Mon 2019-06-10 23:15:05 CST; 6h left Docs: https://docs.docker.com Main PID: 1452 (dockerd) Memory: 132.2M CGroup: /system.slice/docker.service 鈹溾攢1452 /usr/bin/dockerd --selinux-enabled --storage-driver devicemapper --storage-opt dm.basesize=25G 鈹斺攢2436 containerd --config /var/run/docker/containerd/containerd.toml --log-level info Jun 10 23:15:03 localhost.localdomain dockerd[1452]: time="2019-06-10T23:15:03.843382248+08:00" level=info msg="Successfully created filesystem xfs on device docker-253:0-1047242-base" storage-driver=devicemapper Jun 10 23:15:04 localhost.localdomain dockerd[1452]: time="2019-06-10T23:15:04.076789613+08:00" level=info msg="Graph migration to content-addressability took 0.00 seconds" Jun 10 23:15:04 localhost.localdomain dockerd[1452]: time="2019-06-10T23:15:04.078665673+08:00" level=warning msg="mountpoint for pids not found" Jun 10 23:15:04 localhost.localdomain dockerd[1452]: time="2019-06-10T23:15:04.079906275+08:00" level=info msg="Loading containers: start." Jun 10 23:15:04 localhost.localdomain dockerd[1452]: time="2019-06-10T23:15:04.554467519+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to...rred IP address" Jun 10 23:15:04 localhost.localdomain dockerd[1452]: time="2019-06-10T23:15:04.859786800+08:00" level=info msg="Loading containers: done." Jun 10 23:15:04 localhost.localdomain dockerd[1452]: time="2019-06-10T23:15:04.959099871+08:00" level=info msg="Docker daemon" commit=c3ab8a8 graphdriver(s)=devicemapper version=18.09.1-ol Jun 10 23:15:04 localhost.localdomain dockerd[1452]: time="2019-06-10T23:15:04.959938124+08:00" level=info msg="Daemon has completed initialization" Jun 10 23:15:05 localhost.localdomain dockerd[1452]: time="2019-06-10T23:15:05.053166130+08:00" level=info msg="API listen on /var/run/docker.sock" Jun 10 23:15:05 localhost.localdomain systemd[1]: Started Docker Application Container Engine. Hint: Some lines were ellipsized, use -l to show in full.
然后可以下载镜像文件
[root@localhost soft]# docker pull mysql/mysql-server:5.7 Trying to pull repository docker.io/mysql/mysql-server ... 5.7: Pulling from docker.io/mysql/mysql-server 35defbf6c365: Pull complete 0fa46ab0f51d: Pull complete f70f5000008c: Pull complete 892ac46af8c0: Pull complete Digest: sha256:ddb046076781a15200d36cb01f8f512431c3481bedebd5e92646d8c617ae212c Status: Downloaded newer image for mysql/mysql-server:5.7 [root@localhost soft]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql/mysql-server 5.7 857eadf53a54 6 weeks ago 258MB
使用Docker来部署MySQL
下载MySQL Server Docker镜像文件
严格来说,不需要在单独的步骤中下载服务器镜像,但是,在创建Docker容器之前执行此步骤可以确保本地映像是最新的。为了下载MySQL社区版镜像,执行以下命令:
docker pull mysql/mysql-server:tag
tag是你想要pull镜像版本的标识(例如,5.5,5.6,5.7,8.0或最新版本)。如果:tag被忽略,latest标记会被使用并且最新通用可用版本的MySQL社区版本镜像将会被下载。网址
https://hub.docker.com/r/mysql/mysql-server/tags/列出了所有可用版本信息.
[root@localhost soft]# docker pull mysql/mysql-server:5.7 Trying to pull repository docker.io/mysql/mysql-server ... 5.7: Pulling from docker.io/mysql/mysql-server 35defbf6c365: Pull complete 0fa46ab0f51d: Pull complete f70f5000008c: Pull complete 892ac46af8c0: Pull complete Digest: sha256:ddb046076781a15200d36cb01f8f512431c3481bedebd5e92646d8c617ae212c Status: Downloaded newer image for mysql/mysql-server:5.7
如果要显示Docker镜像可以执行以下命令:
[root@localhost soft]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql/mysql-server 5.7 857eadf53a54 6 weeks ago 258MB
为了下载MySQL企业版本镜像,执行以下命令:
docker pull store/oracle/mysql-enterprise-server:5.7
5.7是我们想要pull的镜像版本。MySQL企业版本容器只提供了最新的通用可用版本5.7
启动MySQL Server实例
为MySQL社区版本服务器启动一个新的Docker容器执行以下命令:
[root@localhost ~]# docker run --name=mysql1 -d mysql/mysql-server:5.7 5128014e440f10c557b52e6203445a01c97728e432d0f231c6027bf4b15520bd
为MySQL企业版本服务器启动一个新的Docker容器执行以下命令:
docker run --name=mysql1 -d store/oracle/mysql-enterprise-server:tag
--name选项,用来为你的服务容器指定名字(例如mysql1),它是可选项。如果没有提供容器名,会生成一个随机容器名。如果之前的docker pull或docker run命令所指定名称或标记的Docker镜像没有下载,那么镜像现在就会被下载。在下载完成后,开始初始化容器,并且当你执行docker ps命令时容器会出现在正在运行的容器列表中。例如:
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5128014e440f mysql/mysql-server:5.7 "/entrypoint.sh mysq鈥 42 seconds ago Up 39 seconds (health: starting) 3306/tcp, 33060/tcp mysql1
IMAGE列的输出对于MySQL社区版本读取的值为mysql/mysql-server,对于MySQL企业版本读取的值为store/oracle/mysql-enterprise-server。
容器初始化可能会花费一些时间。当服务准备好使用时,docker ps命令输出的STATUS列将从(health: starting)改变为(healthy)。
在上面的docker run命令中-d选项使容器在后台运行。使用下面的命令可以监控容器的输出信息:
[root@localhost ~]# docker logs mysql1 [Entrypoint] MySQL Docker Image 5.7.26-1.1.11 [Entrypoint] No password option specified for new database. [Entrypoint] A random onetime password will be generated. [Entrypoint] Initializing database [Entrypoint] Database initialized Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it. [Entrypoint] GENERATED ROOT PASSWORD: 3z[omLAk4Jaz@sYxDiLYnyPySYfR [Entrypoint] ignoring /docker-entrypoint-initdb.d/* [Entrypoint] Server shut down [Entrypoint] Setting root user as expired. Password will need to be changed before database can be used. [Entrypoint] MySQL init process done. Ready for start up. [Entrypoint] Starting MySQL 5.7.26-1.1.11
一旦初始化完成,命令的输出将会包含为root用户生成随机密码的信息,也可以执行下面的命令来检查密码:
[root@localhost ~]# docker logs mysql1 2>&1 | grep GENERATED [Entrypoint] GENERATED ROOT PASSWORD: 3z[omLAk4Jaz@sYxDiLYnyPySYfR
在容器中连接MySQL服务器
一旦服务可以使用后,可以在刚刚启动的MySQL服务容器中运行mysql客户端程序并连接到MySQL服务。在刚刚启动的Docker容器中使用docker exec -it命令来启动mysql客户端程序,例如:
[root@localhost ~]# docker exec -it mysql1 mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 107 Server version: 5.7.26 Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
在执行上面的命令时需要输入root用户生成的密码。因为mysql_onetime_password选项缺省情况为true(对于MySQL社区版本来说),在mysql客户端连接到MySQL服务后,必须要通过执行以下命令来修改root用户的密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.00 sec)
一旦修改密码后,MySQL服务就可以使用。
容器Shell访问
为了使用shell访问你的MySQL服务器容器,在容器中使用docker exec -it命令来启动bash shell:
[root@localhost ~]# docker exec -it mysql1 bash bash-4.2#
在启动bash shell后,在容器中可以运行linux命令,例如,为了查看容器中的MySQL数据库的数据目录中的内容,执行以下命令:
bash-4.2# ls /var/lib/mysql auto.cnf ca.pem client-key.pem ib_logfile0 ibdata1 mysql mysql.sock.lock private_key.pem server-cert.pem sys ca-key.pem client-cert.pem ib_buffer_pool ib_logfile1 ibtmp1 mysql.sock performance_schema public_key.pem server-key.pem
停止与删除一个MySQL容器
为了停止已经创建的MySQL服务容器执行下面的命令:
[root@localhost ~]# docker stop mysql1 mysql1 [root@localhost ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5128014e440f mysql/mysql-server:5.7 "/entrypoint.sh mysql" 21 hours ago Exited (0) 8 seconds ago mysql1
docker stop将发送一个SIGTERM信号给mysqld进程,因此服务将被优雅的关闭。
还可以观察到当一个容器的主进程(一个MySQL服务容器的主进程为mysqld)被关闭,Docker容器也会自动关闭。
启动MySQL服务容器:
[root@localhost ~]# docker start mysql1 mysql1 [root@localhost ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5128014e440f mysql/mysql-server:5.7 "/entrypoint.sh mysql" 22 hours ago Up 5 seconds (health: starting) 3306/tcp, 33060/tcp mysql1 [root@localhost ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5128014e440f mysql/mysql-server:5.7 "/entrypoint.sh mysql" 22 hours ago Up 15 seconds (health: starting) 3306/tcp, 33060/tcp mysql1 [root@localhost ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5128014e440f mysql/mysql-server:5.7 "/entrypoint.sh mysql" 22 hours ago Up 21 seconds (health: starting) 3306/tcp, 33060/tcp mysql1 [root@localhost ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5128014e440f mysql/mysql-server:5.7 "/entrypoint.sh mysql" 22 hours ago Up 32 seconds (healthy) 3306/tcp, 33060/tcp mysql1
为了使用单个命令停止与再次启动MySQL服务容器:
[root@localhost ~]# docker restart mysql1 mysql1 [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5128014e440f mysql/mysql-server:5.7 "/entrypoint.sh mysql" 24 hours ago Up 6 seconds (health: starting) 3306/tcp, 33060/tcp mysql1
为了删除MySQL容器,首先停止容器,然后再使用docker rm命令:
[root@localhost ~]# docker stop mysql1 mysql1 [root@localhost ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5128014e440f mysql/mysql-server:5.7 "/entrypoint.sh mysq1" 24 hours ago Exited (0) 12 seconds ago mysql1 [root@localhost ~]# docker rm mysql1 mysql1 [root@localhost ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
为Docker优化MySQL的安装
MySQL的Docker映像针对代码大小进行了优化,这意味着它们只包含与大多数在Docker容器中运行MySQL实例的用户相关的关键组件。一个MySQL Docker安装与常见的非Docker安装在以下方面不同:
包含的二进制文件是有限的:
/usr/bin/my_print_defaults /usr/bin/mysql /usr/bin/mysql_config /usr/bin/mysql_install_db /usr/bin/mysql_tzinfo_to_sql /usr/bin/mysql_upgrade /usr/bin/mysqladmin /usr/bin/mysqlcheck /usr/bin/mysqldump /usr/bin/mysqlpump /usr/sbin/mysqld
所有的二进制文件被stripped;它们不包含调试信息。
配置MySQL Server
当你启动MySQL Docker容器时,可以通过docker run命令来传递配置选项给服务,例如,对于MySQL社区版本服务器
docker run --name mysql1 -d mysql/mysql-server:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_col
对于MySQL企业版本服务器:
docker run --name mysql1 -d store/oracle/mysql-enterprise-server --character-set-server=utf8mb4 --collation-server=utf8mb4_col
命令以utf8mb4作为默认字符集和utf8mb4col作为您的数据库的默认排序启动MySQL服务器。另一种配置MySQL服务器的方法是准备一个配置文件,并将其挂载到容器内的服务器配置文件的位置。有关详细信息,请参阅持久数据和配置更改。
持久数据和配置更改
Docker容器在原则上是临时的,如果容器被删除或损坏,任何数据或配置都将丢失(参见讨论)。然而,Docker卷提供了一种机制,可以在Docker容器中保存数据。在初始化时,MySQL服务器容器为服务器数据目录创建Docker卷。运行docker检查容器命令的JSON输出有一个挂载键,其值提供数据目录卷的信息:
[root@localhost ~]# docker inspect mysql1 ... "Mounts": [ { "Type": "volume", "Name": "a74fb4e3348635ddc0b3eb32e3f82b4feb38eeadd8d5b3ae60b4389ab83a86d8", "Source": "/var/lib/docker/volumes/a74fb4e3348635ddc0b3eb32e3f82b4feb38eeadd8d5b3ae60b4389ab83a86d8/_data", "Destination": "/var/lib/mysql", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ], ...
输出显示源文件夹
/var/lib/docker/volumes/a74fb4e3348635ddc0b3eb32e3f82b4feb38eeadd8d5b3ae60b4389ab83a86d8/_data将数据持久化到主机上的数据,已经安装在/var/lib/mysql中,容器内的服务器数据目录。
保存数据的另一种方法是在创建容器时使用 --mount 选项挂载主机目录。同样的技术可以用来持久化服务器的配置。
下面的命令创建一个MySQL服务器容器,并将数据目录和服务器配置文件绑定在一起:
docker run --name=mysql1 \ --mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf \ --mount type=bind,src=/path-on-host-machine/datadir,dst=/var/lib/mysql \ -d mysql/mysql-server:tag
配置文件path-on-host-machine/my.cnf必须存在,同时包含指定的用户:
[mysqld] user=mysql
path-on-host-machine.datadir目录必须存在。要发生服务器初始化,目录必须是空的。您还可以安装一个带有数据的目录,并使用它启动服务器;但是,您必须确保启动Docker容器,其配置与创建数据的服务器具有相同的配置,并且启动容器时所需的任何主机文件或目录都被安装。
运行额外的初始化脚本
如果您想在创建后立即在数据库上运行任何.sh或.sql脚本,您可以将它们放入主机目录中,然后mount目录在/docker-entrypoint-initdb.d
docker run --name=mysql1 \ --mount type=bind,src=/path-on-host-machine/scripts/,dst=/docker-entrypoint-initdb.d/ \ -d mysql/mysql-server:tag
对于MySQL企业版本服务器容器:
docker run --name=mysql1 \ --mount type=bind,src=/path-on-host-machine/scripts/,dst=/docker-entrypoint-initdb.d/ \ -d store/oracle/mysql-enterprise-server:tag
从另一个Docker容器中的应用程序连接到MySQL
通过建立一个Docker网络,你可以让多个Docker容器相互通信,这样,在另一个Docker容器中的客户端应用程序就可以在服务器容器中访问MySQL服务器。首先,创建一个Docker网络:
docker network create my-custom-net
然后,当您创建并启动服务器和客户端容器时,使用-network选项将它们放在您创建的网络上。例如:
docker run --name=mysql1 --network=my-custom-net -d mysql/mysql-server docker run --name=myapp1 --network=my-custom-net -d myapp
当使用MySQL企业版本服务器容器:
docker run --name=mysql1 --network=my-custom-net -d store/oracle/mysql-enterprise-server docker run --name=myapp1 --network=my-custom-net -d myapp
myapp1容器随后可以与mysql1主机连接到mysql1容器,反之亦然,因为Docker会自动为给定的容器名称设置一个DNS。在下面的例子中,我们从myapp1容器中运行mysql客户端,以便在自己的容器中连接主机mysql1:
docker exec -it myapp1 mysql --host=mysql1 --user=myuser --password
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。