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/]#wgethttp://yum.oracle.com/public-yum-ol7.repo[root@localhostyum.repos.d]#vipublic-yum-ol7.repo[ol7_latest]name=OracleLinux$releaseverLatest($basearch)baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/latest/$basearch/gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oraclegpgcheck=1enabled=1[ol7_UEKR4]name=LatestUnbreakableEnterpriseKernelRelease4forOracleLinux$releasever($basearch)baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/UEKR4/$basearch/gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oraclegpgcheck=1enabled=1[ol7_addons]name=OracleLinux$releaseverAddons($basearch)baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/addons/$basearch/gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oraclegpgcheck=1enabled=1

2.开始安装docker

[root@localhostyum.repos.d]#yuminstalldocker-engineLoadedplugins:langpacksol7_UEKR4|2.5kB00:00:00ol7_addons|1.2kB00:00:00ol7_latest|2.7kB00:00:00(1/4):ol7_addons/x86_64/updateinfo|60kB00:00:00(2/4):ol7_UEKR4/x86_64/updateinfo|82kB00:00:01(3/4):ol7_addons/x86_64/primary|82kB00:00:02(4/4):ol7_UEKR4/x86_64/primary_db|4.0MB00:03:38ol7_addons328/328ResolvingDependencies-->Runningtransactioncheck--->Packagedocker-engine.x86_640:18.09.1.ol-1.0.5.el7willbeinstalled-->ProcessingDependency:container-selinux>=2:2.77forpackage:docker-engine-18.09.1.ol-1.0.5.el7.x86_64-->ProcessingDependency:libseccomp>=2.3forpackage:docker-engine-18.09.1.ol-1.0.5.el7.x86_64-->ProcessingDependency:containerdforpackage:docker-engine-18.09.1.ol-1.0.5.el7.x86_64-->ProcessingDependency:docker-cliforpackage:docker-engine-18.09.1.ol-1.0.5.el7.x86_64-->ProcessingDependency:runcforpackage:docker-engine-18.09.1.ol-1.0.5.el7.x86_64-->ProcessingDependency:libdevmapper.so.1.02(DM_1_02_97)(64bit)forpackage:docker-engine-18.09.1.ol-1.0.5.el7.x86_64-->ProcessingDependency:libsystemd.so.0(LIBSYSTEMD_209)(64bit)forpackage:docker-engine-18.09.1.ol-1.0.5.el7.x86_64-->ProcessingDependency:libsystemd.so.0()(64bit)forpackage:docker-engine-18.09.1.ol-1.0.5.el7.x86_64-->Runningtransactioncheck--->Packagecontainer-selinux.noarch2:2.77-5.el7willbeinstalled-->ProcessingDependency:selinux-policy-base>=3.13.1-216.el7forpackage:2:container-selinux-2.77-5.el7.noarch-->ProcessingDependency:selinux-policy>=3.13.1-216.el7forpackage:2:container-selinux-2.77-5.el7.noarch-->ProcessingDependency:policycoreutils>=2.5-11forpackage:2:container-selinux-2.77-5.el7.noarch-->ProcessingDependency:selinux-policy-targeted>=3.13.1-216.el7forpackage:2:container-selinux-2.77-5.el7.noarch--->Packagecontainerd.x86_640:1.2.0-1.0.5.el7willbeinstalled--->Packagedevice-mapper-libs.x86_647:1.02.93-3.el7willbeupdated-->ProcessingDependency:device-mapper-libs=7:1.02.93-3.el7forpackage:7:device-mapper-1.02.93-3.el7.x86_64--->Packagedevice-mapper-libs.x86_647:1.02.149-10.0.3.el7_6.8willbeanupdate--->Packagedocker-cli.x86_640:18.09.1.ol-1.0.5.el7willbeinstalled--->Packagelibseccomp.x86_640:2.1.1-2.el7willbeupdated--->Packagelibseccomp.x86_640:2.3.1-3.el7willbeanupdate--->Packagerunc.x86_640:1.0.0-19.rc5.git4bb1fe4.0.3.el7willbeinstalled-->ProcessingDependency:criuforpackage:runc-1.0.0-19.rc5.git4bb1fe4.0.3.el7.x86_64--->Packagesystemd-libs.x86_640:208-20.0.1.el7willbeupdated-->ProcessingDependency:systemd-libs=208-20.0.1.el7forpackage:systemd-208-20.0.1.el7.x86_64--->Packagesystemd-libs.x86_640:219-62.0.4.el7_6.7willbeanupdate-->ProcessingDependency:liblz4.so.1()(64bit)forpackage:systemd-libs-219-62.0.4.el7_6.7.x86_64-->Runningtransactioncheck--->Packagecriu.x86_640:3.9-5.el7willbeinstalled-->ProcessingDependency:libprotobuf-c.so.1(LIBPROTOBUF_C_1.0.0)(64bit)forpackage:criu-3.9-5.el7.x86_64-->ProcessingDependency:libnl-3.so.200(libnl_3)(64bit)forpackage:criu-3.9-5.el7.x86_64-->ProcessingDependency:libprotobuf-c.so.1()(64bit)forpackage:criu-3.9-5.el7.x86_64-->ProcessingDependency:libnet.so.1()(64bit)forpackage:criu-3.9-5.el7.x86_64--->Packagedevice-mapper.x86_647:1.02.93-3.el7willbeupdated-->ProcessingDependency:device-mapper=7:1.02.93-3.el7forpackage:7:device-mapper-event-1.02.93-3.el7.x86_64--->Packagedevice-mapper.x86_647:1.02.149-10.0.3.el7_6.8willbeanupdate--->Packagelz4.x86_640:1.7.5-2.0.1.el7willbeinstalled--->Packagepolicycoreutils.x86_640:2.2.5-15.0.1.el7willbeupdated-->ProcessingDependency:policycoreutils=2.2.5-15.0.1.el7forpackage:policycoreutils-python-2.2.5-15.0.1.el7.x86_64--->Packagepolicycoreutils.x86_640:2.5-29.0.1.el7_6.1willbeanupdate-->ProcessingDependency:libsemanage>=2.5-14forpackage:policycoreutils-2.5-29.0.1.el7_6.1.x86_64-->ProcessingDependency:libsepol>=2.5-10forpackage:policycoreutils-2.5-29.0.1.el7_6.1.x86_64-->ProcessingDependency:libselinux-utils>=2.5-14forpackage:policycoreutils-2.5-29.0.1.el7_6.1.x86_64-->ProcessingDependency:libsepol.so.1(LIBSEPOL_1.1)(64bit)forpackage:policycoreutils-2.5-29.0.1.el7_6.1.x86_64-->ProcessingDependency:libsemanage.so.1(LIBSEMANAGE_1.1)(64bit)forpackage:policycoreutils-2.5-29.0.1.el7_6.1.x86_64-->ProcessingDependency:libsepol.so.1(LIBSEPOL_1.0)(64bit)forpackage:policycoreutils-2.5-29.0.1.el7_6.1.x86_64--->Packageselinux-policy.noarch0:3.13.1-23.0.1.el7willbeupdated--->Packageselinux-policy.noarch0:3.13.1-229.0.3.el7_6.12willbeanupdate--->Packageselinux-policy-targeted.noarch0:3.13.1-23.0.1.el7willbeupdated--->Packageselinux-policy-targeted.noarch0:3.13.1-229.0.3.el7_6.12willbeanupdate--->Packagesystemd.x86_640:208-20.0.1.el7willbeupdated-->ProcessingDependency:systemd=208-20.0.1.el7forpackage:libgudev1-208-20.0.1.el7.x86_64-->ProcessingDependency:systemd=208-20.0.1.el7forpackage:systemd-sysv-208-20.0.1.el7.x86_64-->ProcessingDependency:systemd=208-20.0.1.el7forpackage:systemd-python-208-20.0.1.el7.x86_64--->Packagesystemd.x86_640:219-62.0.4.el7_6.7willbeanupdate-->ProcessingDependency:kmod>=18-4forpackage:systemd-219-62.0.4.el7_6.7.x86_64-->ProcessingDependency:libcryptsetup.so.12(CRYPTSETUP_2.0)(64bit)forpackage:systemd-219-62.0.4.el7_6.7.x86_64-->ProcessingDependency:libcryptsetup.so.12()(64bit)forpackage:systemd-219-62.0.4.el7_6.7.x86_64-->Runningtransactioncheck--->Packagecryptsetup-libs.x86_640:1.6.6-3.el7willbeupdated-->ProcessingDependency:cryptsetup-libs=1.6.6-3.el7forpackage:cryptsetup-python-1.6.6-3.el7.x86_64-->ProcessingDependency:cryptsetup-libs(x86-64)=1.6.6-3.el7forpackage:cryptsetup-1.6.6-3.el7.x86_64--->Packagecryptsetup-libs.x86_640:2.0.3-3.el7willbeanupdate--->Packagedevice-mapper-event.x86_647:1.02.93-3.el7willbeupdated-->ProcessingDependency:device-mapper-event=7:1.02.93-3.el7forpackage:7:lvm2-libs-2.02.115-3.el7.x86_64--->Packagedevice-mapper-event.x86_647:1.02.149-10.0.3.el7_6.8willbeanupdate-->ProcessingDependency:device-mapper-event-libs=7:1.02.149-10.0.3.el7_6.8forpackage:7:device-mapper-event-1.02.149-10.0.3.el7_6.8.x86_64--->Packagekmod.x86_640:14-10.el7willbeupdated--->Packagekmod.x86_640:20-23.0.1.el7willbeanupdate--->Packagelibgudev1.x86_640:208-20.0.1.el7willbeupdated--->Packagelibgudev1.x86_640:219-62.0.4.el7_6.7willbeanupdate-->ProcessingDependency:glib2>=2.42forpackage:libgudev1-219-62.0.4.el7_6.7.x86_64--->Packagelibnet.x86_640:1.1.6-7.el7willbeinstalled--->Packagelibnl3.x86_640:3.2.21-8.0.1.el7willbeupdated-->ProcessingDependency:libnl3=3.2.21-8.0.1.el7forpackage:libnl3-cli-3.2.21-8.0.1.el7.x86_64--->Packagelibnl3.x86_640:3.2.28-4.el7willbeanupdate--->Packagelibselinux-utils.x86_640:2.2.2-6.el7willbeupdated--->Packagelibselinux-utils.x86_640:2.5-14.1.el7willbeanupdate-->ProcessingDependency:libselinux(x86-64)=2.5-14.1.el7forpackage:libselinux-utils-2.5-14.1.el7.x86_64--->Packagelibsemanage.x86_640:2.1.10-16.el7willbeupdated-->ProcessingDependency:libsemanage=2.1.10-16.el7forpackage:libsemanage-python-2.1.10-16.el7.x86_64--->Packagelibsemanage.x86_640:2.5-14.el7willbeanupdate--->Packagelibsepol.x86_640:2.1.9-3.el7willbeupdated--->Packagelibsepol.x86_640:2.5-10.el7willbeanupdate--->Packagepolicycoreutils-python.x86_640:2.2.5-15.0.1.el7willbeupdated--->Packagepolicycoreutils-python.x86_640:2.5-29.0.1.el7_6.1willbeanupdate-->ProcessingDependency:setools-libs>=3.3.8-4forpackage:policycoreutils-python-2.5-29.0.1.el7_6.1.x86_64--->Packageprotobuf-c.x86_640:1.0.2-3.el7willbeinstalled--->Packagesystemd-python.x86_640:208-20.0.1.el7willbeupdated--->Packagesystemd-python.x86_640:219-62.0.4.el7_6.7willbeanupdate--->Packagesystemd-sysv.x86_640:208-20.0.1.el7willbeupdated--->Packagesystemd-sysv.x86_640:219-62.0.4.el7_6.7willbeanupdate-->Runningtransactioncheck--->Packagecryptsetup.x86_640:1.6.6-3.el7willbeupdated--->Packagecryptsetup.x86_640:2.0.3-3.el7willbeanupdate--->Packagecryptsetup-python.x86_640:1.6.6-3.el7willbeupdated--->Packagecryptsetup-python.x86_640:2.0.3-3.el7willbeanupdate--->Packagedevice-mapper-event-libs.x86_647:1.02.93-3.el7willbeupdated--->Packagedevice-mapper-event-libs.x86_647:1.02.149-10.0.3.el7_6.8willbeanupdate--->Packageglib2.x86_640:2.40.0-4.el7willbeupdated--->Packageglib2.x86_640:2.56.1-4.el7_6willbeanupdate--->Packagelibnl3-cli.x86_640:3.2.21-8.0.1.el7willbeupdated--->Packagelibnl3-cli.x86_640:3.2.28-4.el7willbeanupdate--->Packagelibselinux.x86_640:2.2.2-6.el7willbeupdated-->ProcessingDependency:libselinux=2.2.2-6.el7forpackage:libselinux-python-2.2.2-6.el7.x86_64--->Packagelibselinux.x86_640:2.5-14.1.el7willbeanupdate--->Packagelibsemanage-python.x86_640:2.1.10-16.el7willbeupdated--->Packagelibsemanage-python.x86_640:2.5-14.el7willbeanupdate--->Packagelvm2-libs.x86_647:2.02.115-3.el7willbeupdated-->ProcessingDependency:lvm2-libs=7:2.02.115-3.el7forpackage:7:lvm2-2.02.115-3.el7.x86_64-->ProcessingDependency:lvm2-libs=7:2.02.115-3.el7forpackage:7:lvm2-python-libs-2.02.115-3.el7.x86_64--->Packagelvm2-libs.x86_647:2.02.180-10.0.3.el7_6.8willbeanupdate--->Packagesetools-libs.x86_640:3.3.7-46.el7willbeupdated--->Packagesetools-libs.x86_640:3.3.8-4.el7willbeanupdate-->Runningtransactioncheck--->Packagelibselinux-python.x86_640:2.2.2-6.el7willbeupdated--->Packagelibselinux-python.x86_640:2.5-14.1.el7willbeanupdate--->Packagelvm2.x86_647:2.02.115-3.el7willbeupdated--->Packagelvm2.x86_647:2.02.180-10.0.3.el7_6.8willbeanupdate-->ProcessingDependency:device-mapper-persistent-data>=0.7.0-0.1.rc6forpackage:7:lvm2-2.02.180-10.0.3.el7_6.8.x86_64--->Packagelvm2-python-libs.x86_647:2.02.115-3.el7willbeupdated--->Packagelvm2-python-libs.x86_647:2.02.180-10.0.3.el7_6.8willbeanupdate-->Runningtransactioncheck--->Packagedevice-mapper-persistent-data.x86_640:0.4.1-2.el7willbeupdated--->Packagedevice-mapper-persistent-data.x86_640:0.7.3-3.el7willbeanupdate-->ProcessingConflict:systemd-219-62.0.4.el7_6.7.x86_64conflictsinitscripts<9.49.28-1-->RestartingDependencyResolutionwithnewchanges.-->Runningtransactioncheck--->Packageinitscripts.x86_640:9.49.24-1.0.1.el7willbeupdated--->Packageinitscripts.x86_640:9.49.46-1.0.1.el7willbeanupdate-->ProcessingConflict:initscripts-9.49.46-1.0.1.el7.x86_64conflictsredhat-release<7.5-0.11-->RestartingDependencyResolutionwithnewchanges.-->Runningtransactioncheck--->Packageredhat-release-server.x86_641:7.1-1.0.2.el7willbeupdated--->Packageredhat-release-server.x86_641:7.6-4.0.1.el7willbeanupdate-->ProcessingConflict:initscripts-9.49.46-1.0.1.el7.x86_64conflictsoraclelinux-release<7:7.5-1.0.3-->RestartingDependencyResolutionwithnewchanges.-->Runningtransactioncheck--->Packageoraclelinux-release.x86_647:7.1-1.0.5.el7willbeupdated--->Packageoraclelinux-release.x86_647:7.6-1.0.15.el7willbeanupdate-->ProcessingConflict:systemd-219-62.0.4.el7_6.7.x86_64conflictsdracut<033-243-->RestartingDependencyResolutionwithnewchanges.-->Runningtransactioncheck--->Packagedracut.x86_640:033-240.0.1.el7willbeupdated-->ProcessingDependency:dracut=033-240.0.1.el7forpackage:dracut-config-rescue-033-240.0.1.el7.x86_64-->ProcessingDependency:dracut=033-240.0.1.el7forpackage:dracut-network-033-240.0.1.el7.x86_64--->Packagedracut.x86_640:033-554.0.3.el7willbeanupdate-->Runningtransactioncheck--->Packagedracut-config-rescue.x86_640:033-240.0.1.el7willbeupdated--->Packagedracut-config-rescue.x86_640:033-554.0.3.el7willbeanupdate--->Packagedracut-network.x86_640:033-240.0.1.el7willbeupdated--->Packagedracut-network.x86_640:033-554.0.3.el7willbeanupdate-->FinishedDependencyResolutionDependenciesResolved============================================================================================================================================================================================================================================PackageArchVersionRepositorySize============================================================================================================================================================================================================================================Installing:docker-enginex86_6418.09.1.ol-1.0.5.el7ol7_addons19MUpdating:dracutx86_64033-554.0.3.el7ol7_latest328kinitscriptsx86_649.49.46-1.0.1.el7ol7_latest439koraclelinux-releasex86_647:7.6-1.0.15.el7ol7_latest54kredhat-release-serverx86_641:7.6-4.0.1.el7ol7_latest9.8kInstallingfordependencies:container-selinuxnoarch2:2.77-5.el7ol7_addons37kcontainerdx86_641.2.0-1.0.5.el7ol7_addons21Mcriux86_643.9-5.el7ol7_latest432kdocker-clix86_6418.09.1.ol-1.0.5.el7ol7_addons14Mlibnetx86_641.1.6-7.el7ol7_latest57klz4x86_641.7.5-2.0.1.el7ol7_latest98kprotobuf-cx86_641.0.2-3.el7ol7_latest27kruncx86_641.0.0-19.rc5.git4bb1fe4.0.3.el7ol7_addons1.9MUpdatingfordependencies:cryptsetupx86_642.0.3-3.el7ol7_latest153kcryptsetup-libsx86_642.0.3-3.el7ol7_latest337kcryptsetup-pythonx86_642.0.3-3.el7ol7_latest35kdevice-mapperx86_647:1.02.149-10.0.3.el7_6.8ol7_latest293kdevice-mapper-eventx86_647:1.02.149-10.0.3.el7_6.8ol7_latest188kdevice-mapper-event-libsx86_647:1.02.149-10.0.3.el7_6.8ol7_latest188kdevice-mapper-libsx86_647:1.02.149-10.0.3.el7_6.8ol7_latest320kdevice-mapper-persistent-datax86_640.7.3-3.el7ol7_latest404kdracut-config-rescuex86_64033-554.0.3.el7ol7_latest60kdracut-networkx86_64033-554.0.3.el7ol7_latest102kglib2x86_642.56.1-4.el7_6ol7_latest2.5Mkmodx86_6420-23.0.1.el7ol7_latest121klibgudev1x86_64219-62.0.4.el7_6.7ol7_latest96klibnl3x86_643.2.28-4.el7ol7_latest277klibnl3-clix86_643.2.28-4.el7ol7_latest159klibseccompx86_642.3.1-3.el7ol7_latest55klibselinuxx86_642.5-14.1.el7ol7_latest162klibselinux-pythonx86_642.5-14.1.el7ol7_latest235klibselinux-utilsx86_642.5-14.1.el7ol7_latest151klibsemanagex86_642.5-14.el7ol7_latest150klibsemanage-pythonx86_642.5-14.el7ol7_latest112klibsepolx86_642.5-10.el7ol7_latest297klvm2x86_647:2.02.180-10.0.3.el7_6.8ol7_latest1.3Mlvm2-libsx86_647:2.02.180-10.0.3.el7_6.8ol7_latest1.1Mlvm2-python-libsx86_647:2.02.180-10.0.3.el7_6.8ol7_latest186kpolicycoreutilsx86_642.5-29.0.1.el7_6.1ol7_latest916kpolicycoreutils-pythonx86_642.5-29.0.1.el7_6.1ol7_latest455kselinux-policynoarch3.13.1-229.0.3.el7_6.12ol7_latest484kselinux-policy-targetednoarch3.13.1-229.0.3.el7_6.12ol7_latest6.9Msetools-libsx86_643.3.8-4.el7ol7_latest620ksystemdx86_64219-62.0.4.el7_6.7ol7_latest5.1Msystemd-libsx86_64219-62.0.4.el7_6.7ol7_latest407ksystemd-pythonx86_64219-62.0.4.el7_6.7ol7_latest133ksystemd-sysvx86_64219-62.0.4.el7_6.7ol7_latest84kTransactionSummary============================================================================================================================================================================================================================================Install1Package(+8Dependentpackages)Upgrade4Packages(+34Dependentpackages)Totaldownloadsize:81MIsthisok[y/d/N]:yDownloadingpackages:NoPrestometadataavailableforol7_latestwarning:/var/cache/yum/x86_64/7Server/ol7_latest/packages/cryptsetup-2.0.3-3.el7.x86_64.rpm:HeaderV3RSA/SHA256Signature,keyIDec551f03:NOKEY]373kB/s|1.6MB00:03:39ETAPublickeyforcryptsetup-2.0.3-3.el7.x86_64.rpmisnotinstalled(1/47):cryptsetup-2.0.3-3.el7.x86_64.rpm|153kB00:00:04(2/47):criu-3.9-5.el7.x86_64.rpm|432kB00:00:04Publickeyforcontainer-selinux-2.77-5.el7.noarch.rpmisnotinstalled(3/47):container-selinux-2.77-5.el7.noarch.rpm|37kB00:00:04(4/47):cryptsetup-python-2.0.3-3.el7.x86_64.rpm|35kB00:00:00(5/47):cryptsetup-libs-2.0.3-3.el7.x86_64.rpm|337kB00:00:01(6/47):device-mapper-event-1.02.149-10.0.3.el7_6.8.x86_64.rpm|188kB00:00:00(7/47):device-mapper-1.02.149-10.0.3.el7_6.8.x86_64.rpm|293kB00:00:01(8/47):device-mapper-event-libs-1.02.149-10.0.3.el7_6.8.x86_64.rpm|188kB00:00:00(9/47):device-mapper-persistent-data-0.7.3-3.el7.x86_64.rpm|404kB00:00:00(10/47):device-mapper-libs-1.02.149-10.0.3.el7_6.8.x86_64.rpm|320kB00:00:02(11/47):containerd-1.2.0-1.0.5.el7.x86_64.rpm|21MB00:00:13(12/47):dracut-config-rescue-033-554.0.3.el7.x86_64.rpm|60kB00:00:01(13/47):dracut-network-033-554.0.3.el7.x86_64.rpm|102kB00:00:00(14/47):dracut-033-554.0.3.el7.x86_64.rpm|328kB00:00:02(15/47):initscripts-9.49.46-1.0.1.el7.x86_64.rpm|439kB00:00:00(16/47):kmod-20-23.0.1.el7.x86_64.rpm|121kB00:00:00(17/47):libgudev1-219-62.0.4.el7_6.7.x86_64.rpm|96kB00:00:00(18/47):glib2-2.56.1-4.el7_6.x86_64.rpm|2.5MB00:00:02(19/47):libnl3-3.2.28-4.el7.x86_64.rpm|277kB00:00:00(20/47):docker-cli-18.09.1.ol-1.0.5.el7.x86_64.rpm|14MB00:00:12(21/47):libnet-1.1.6-7.el7.x86_64.rpm|57kB00:00:01(22/47):libseccomp-2.3.1-3.el7.x86_64.rpm|55kB00:00:00(23/47):libselinux-2.5-14.1.el7.x86_64.rpm|162kB00:00:00(24/47):libnl3-cli-3.2.28-4.el7.x86_64.rpm|159kB00:00:00(25/47):libselinux-python-2.5-14.1.el7.x86_64.rpm|235kB00:00:00(26/47):libselinux-utils-2.5-14.1.el7.x86_64.rpm|151kB00:00:00(27/47):libsemanage-python-2.5-14.el7.x86_64.rpm|112kB00:00:00(28/47):libsemanage-2.5-14.el7.x86_64.rpm|150kB00:00:00(29/47):libsepol-2.5-10.el7.x86_64.rpm|297kB00:00:00(30/47):lvm2-2.02.180-10.0.3.el7_6.8.x86_64.rpm|1.3MB00:00:00(31/47):lvm2-python-libs-2.02.180-10.0.3.el7_6.8.x86_64.rpm|186kB00:00:00(32/47):lvm2-libs-2.02.180-10.0.3.el7_6.8.x86_64.rpm|1.1MB00:00:01(33/47):lz4-1.7.5-2.0.1.el7.x86_64.rpm|98kB00:00:00(34/47):oraclelinux-release-7.6-1.0.15.el7.x86_64.rpm|54kB00:00:00(35/47):policycoreutils-2.5-29.0.1.el7_6.1.x86_64.rpm|916kB00:00:00(36/47):policycoreutils-python-2.5-29.0.1.el7_6.1.x86_64.rpm|455kB00:00:00(37/47):redhat-release-server-7.6-4.0.1.el7.x86_64.rpm|9.8kB00:00:00(38/47):docker-engine-18.09.1.ol-1.0.5.el7.x86_64.rpm|19MB00:00:10(39/47):selinux-policy-3.13.1-229.0.3.el7_6.12.noarch.rpm|484kB00:00:00(40/47):protobuf-c-1.0.2-3.el7.x86_64.rpm|27kB00:00:02(41/47):setools-libs-3.3.8-4.el7.x86_64.rpm|620kB00:00:00(42/47):runc-1.0.0-19.rc5.git4bb1fe4.0.3.el7.x86_64.rpm|1.9MB00:00:04(43/47):selinux-policy-targeted-3.13.1-229.0.3.el7_6.12.noarch.rpm|6.9MB00:00:03(44/47):systemd-libs-219-62.0.4.el7_6.7.x86_64.rpm|407kB00:00:00(45/47):systemd-python-219-62.0.4.el7_6.7.x86_64.rpm|133kB00:00:00(46/47):systemd-sysv-219-62.0.4.el7_6.7.x86_64.rpm|84kB00:00:00(47/47):systemd-219-62.0.4.el7_6.7.x86_64.rpm|5.1MB00:00:04--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Total2.8MB/s|81MB00:00:29Retrievingkeyfromfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracleImportingGPGkey0xEC551F03:Userid:"OracleOSSgroup(OpenSourceSoftwaregroup)"Fingerprint:42144123fecfc55b9086313d72f97b74ec551f03Package:7:oraclelinux-release-7.1-1.0.5.el7.x86_64(@anaconda/7.1)From:/etc/pki/rpm-gpg/RPM-GPG-KEY-oracleIsthisok[y/N]:yRunningtransactioncheckRunningtransactiontestTransactiontestsucceededRunningtransactionUpdating:libsepol-2.5-10.el7.x86_641/85Updating:libselinux-2.5-14.1.el7.x86_642/85Updating:libsemanage-2.5-14.el7.x86_643/85Installing:lz4-1.7.5-2.0.1.el7.x86_644/85Updating:systemd-libs-219-62.0.4.el7_6.7.x86_645/85Updating:1:redhat-release-server-7.6-4.0.1.el7.x86_646/85Updating:cryptsetup-libs-2.0.3-3.el7.x86_647/85Updating:7:device-mapper-libs-1.02.149-10.0.3.el7_6.8.x86_648/85Updating:7:device-mapper-1.02.149-10.0.3.el7_6.8.x86_649/85Updating:systemd-219-62.0.4.el7_6.7.x86_6410/85Updating:dracut-033-554.0.3.el7.x86_6411/85Updating:kmod-20-23.0.1.el7.x86_6412/85Updating:7:device-mapper-event-libs-1.02.149-10.0.3.el7_6.8.x86_6413/85Updating:libseccomp-2.3.1-3.el7.x86_6414/85Updating:glib2-2.56.1-4.el7_6.x86_6415/85Updating:libselinux-utils-2.5-14.1.el7.x86_6416/85Updating:policycoreutils-2.5-29.0.1.el7_6.1.x86_6417/85Updating:selinux-policy-3.13.1-229.0.3.el7_6.12.noarch18/85Updating:libnl3-3.2.28-4.el7.x86_6419/85Updating:selinux-policy-targeted-3.13.1-229.0.3.el7_6.12.noarch20/85Updating:7:device-mapper-event-1.02.149-10.0.3.el7_6.8.x86_6421/85Updating:7:lvm2-libs-2.02.180-10.0.3.el7_6.8.x86_6422/85Updating:7:oraclelinux-release-7.6-1.0.15.el7.x86_6423/85Updating:libsemanage-python-2.5-14.el7.x86_6424/85Updating:libselinux-python-2.5-14.1.el7.x86_6425/85Updating:setools-libs-3.3.8-4.el7.x86_6426/85Updating:policycoreutils-python-2.5-29.0.1.el7_6.1.x86_6427/85Installing:2:container-selinux-2.77-5.el7.noarch28/85Installing:containerd-1.2.0-1.0.5.el7.x86_6429/85Installing:docker-cli-18.09.1.ol-1.0.5.el7.x86_6430/85Installing:libnet-1.1.6-7.el7.x86_6431/85Installing:protobuf-c-1.0.2-3.el7.x86_6432/85Installing:criu-3.9-5.el7.x86_6433/85Installing:runc-1.0.0-19.rc5.git4bb1fe4.0.3.el7.x86_6434/85Updating:device-mapper-persistent-data-0.7.3-3.el7.x86_6435/85Updating:7:lvm2-2.02.180-10.0.3.el7_6.8.x86_6436/85Createdsymlinkfrom/etc/systemd/system/sysinit.target.wants/lvm2-lvmpolld.socketto/usr/lib/systemd/system/lvm2-lvmpolld.socket.Installing:docker-engine-18.09.1.ol-1.0.5.el7.x86_6437/85Updating:initscripts-9.49.46-1.0.1.el7.x86_6438/85Updating:7:lvm2-python-libs-2.02.180-10.0.3.el7_6.8.x86_6439/85Updating:libnl3-cli-3.2.28-4.el7.x86_6440/85Updating:libgudev1-219-62.0.4.el7_6.7.x86_6441/85Updating:dracut-network-033-554.0.3.el7.x86_6442/85Updating:dracut-config-rescue-033-554.0.3.el7.x86_6443/85Updating:systemd-sysv-219-62.0.4.el7_6.7.x86_6444/85Updating:systemd-python-219-62.0.4.el7_6.7.x86_6445/85Updating:cryptsetup-python-2.0.3-3.el7.x86_6446/85Updating:cryptsetup-2.0.3-3.el7.x86_6447/85Cleanup:7:lvm2-2.02.115-3.el7.x86_6448/85Cleanup:policycoreutils-python-2.2.5-15.0.1.el7.x86_6449/85UPGRADE:Automaticallyre-enablingdefaultsystemdunits:brandbot.pathrhel-autorelabel.servicerhel-autorelabel-mark.servicerhel-configure.servicerhel-dmesg.servicerhel-domainname.servicerhel-import-state.servicerhel-loadmodules.servicerhel-readonly.serviceCleanup:initscripts-9.49.24-1.0.1.el7.x86_6450/85Cleanup:libgudev1-208-20.0.1.el7.x86_6451/85Cleanup:selinux-policy-targeted-3.13.1-23.0.1.el7.noarch52/85Cleanup:selinux-policy-3.13.1-23.0.1.el7.noarch53/85Cleanup:7:oraclelinux-release-7.1-1.0.5.el7.x86_6454/85Cleanup:dracut-config-rescue-033-240.0.1.el7.x86_6455/85Cleanup:systemd-sysv-208-20.0.1.el7.x86_6456/85Cleanup:dracut-network-033-240.0.1.el7.x86_6457/85Cleanup:policycoreutils-2.2.5-15.0.1.el7.x86_6458/85Cleanup:systemd-python-208-20.0.1.el7.x86_6459/85Cleanup:dracut-033-240.0.1.el7.x86_6460/85Cleanup:setools-libs-3.3.7-46.el7.x86_6461/85Cleanup:libselinux-utils-2.2.2-6.el7.x86_6462/85Cleanup:glib2-2.40.0-4.el7.x86_6463/85Cleanup:libselinux-python-2.2.2-6.el7.x86_6464/85Cleanup:libsemanage-python-2.1.10-16.el7.x86_6465/85Cleanup:libsemanage-2.1.10-16.el7.x86_6466/85Cleanup:cryptsetup-1.6.6-3.el7.x86_6467/85Cleanup:libnl3-cli-3.2.21-8.0.1.el7.x86_6468/85Cleanup:cryptsetup-python-1.6.6-3.el7.x86_6469/85Cleanup:7:lvm2-python-libs-2.02.115-3.el7.x86_6470/85Cleanup:7:lvm2-libs-2.02.115-3.el7.x86_6471/85Cleanup:7:device-mapper-event-1.02.93-3.el7.x86_6472/85Cleanup:7:device-mapper-event-libs-1.02.93-3.el7.x86_6473/85Cleanup:cryptsetup-libs-1.6.6-3.el7.x86_6474/85Cleanup:systemd-208-20.0.1.el7.x86_6475/85Cleanup:7:device-mapper-1.02.93-3.el7.x86_6476/85Cleanup:7:device-mapper-libs-1.02.93-3.el7.x86_6477/85Cleanup:1:redhat-release-server-7.1-1.0.2.el7.x86_6478/85Cleanup:systemd-libs-208-20.0.1.el7.x86_6479/85Cleanup:libselinux-2.2.2-6.el7.x86_6480/85Cleanup:libsepol-2.1.9-3.el7.x86_6481/85Cleanup:kmod-14-10.el7.x86_6482/85Cleanup:libnl3-3.2.21-8.0.1.el7.x86_6483/85Cleanup:device-mapper-persistent-data-0.4.1-2.el7.x86_6484/85Cleanup:libseccomp-2.1.1-2.el7.x86_6485/85Verifying:7:device-mapper-event-libs-1.02.149-10.0.3.el7_6.8.x86_641/85Verifying:glib2-2.56.1-4.el7_6.x86_642/85Verifying:docker-engine-18.09.1.ol-1.0.5.el7.x86_643/85Verifying:policycoreutils-2.5-29.0.1.el7_6.1.x86_644/85Verifying:libseccomp-2.3.1-3.el7.x86_645/85Verifying:kmod-20-23.0.1.el7.x86_646/85Verifying:7:device-mapper-libs-1.02.149-10.0.3.el7_6.8.x86_647/85Verifying:7:lvm2-python-libs-2.02.180-10.0.3.el7_6.8.x86_648/85Verifying:libgudev1-219-62.0.4.el7_6.7.x86_649/85Verifying:cryptsetup-libs-2.0.3-3.el7.x86_6410/85Verifying:selinux-policy-3.13.1-229.0.3.el7_6.12.noarch11/85Verifying:7:lvm2-2.02.180-10.0.3.el7_6.8.x86_6412/85Verifying:2:container-selinux-2.77-5.el7.noarch13/85Verifying:initscripts-9.49.46-1.0.1.el7.x86_6414/85Verifying:cryptsetup-python-2.0.3-3.el7.x86_6415/85Verifying:libsemanage-python-2.5-14.el7.x86_6416/85Verifying:1:redhat-release-server-7.6-4.0.1.el7.x86_6417/85Verifying:7:oraclelinux-release-7.6-1.0.15.el7.x86_6418/85Verifying:device-mapper-persistent-data-0.7.3-3.el7.x86_6419/85Verifying:dracut-network-033-554.0.3.el7.x86_6420/85Verifying:systemd-sysv-219-62.0.4.el7_6.7.x86_6421/85Verifying:containerd-1.2.0-1.0.5.el7.x86_6422/85Verifying:policycoreutils-python-2.5-29.0.1.el7_6.1.x86_6423/85Verifying:protobuf-c-1.0.2-3.el7.x86_6424/85Verifying:dracut-config-rescue-033-554.0.3.el7.x86_6425/85Verifying:libselinux-2.5-14.1.el7.x86_6426/85Verifying:systemd-219-62.0.4.el7_6.7.x86_6427/85Verifying:criu-3.9-5.el7.x86_6428/85Verifying:libsemanage-2.5-14.el7.x86_6429/85Verifying:systemd-libs-219-62.0.4.el7_6.7.x86_6430/85Verifying:libnl3-cli-3.2.28-4.el7.x86_6431/85Verifying:systemd-python-219-62.0.4.el7_6.7.x86_6432/85Verifying:libselinux-python-2.5-14.1.el7.x86_6433/85Verifying:libnet-1.1.6-7.el7.x86_6434/85Verifying:libsepol-2.5-10.el7.x86_6435/85Verifying:runc-1.0.0-19.rc5.git4bb1fe4.0.3.el7.x86_6436/85Verifying:selinux-policy-targeted-3.13.1-229.0.3.el7_6.12.noarch37/85Verifying:libselinux-utils-2.5-14.1.el7.x86_6438/85Verifying:dracut-033-554.0.3.el7.x86_6439/85Verifying:7:device-mapper-event-1.02.149-10.0.3.el7_6.8.x86_6440/85Verifying:7:device-mapper-1.02.149-10.0.3.el7_6.8.x86_6441/85Verifying:libnl3-3.2.28-4.el7.x86_6442/85Verifying:docker-cli-18.09.1.ol-1.0.5.el7.x86_6443/85Verifying:7:lvm2-libs-2.02.180-10.0.3.el7_6.8.x86_6444/85Verifying:setools-libs-3.3.8-4.el7.x86_6445/85Verifying:lz4-1.7.5-2.0.1.el7.x86_6446/85Verifying:cryptsetup-2.0.3-3.el7.x86_6447/85Verifying:libselinux-utils-2.2.2-6.el7.x86_6448/85Verifying:libsemanage-python-2.1.10-16.el7.x86_6449/85Verifying:dracut-config-rescue-033-240.0.1.el7.x86_6450/85Verifying:systemd-libs-208-20.0.1.el7.x86_6451/85Verifying:systemd-sysv-208-20.0.1.el7.x86_6452/85Verifying:policycoreutils-2.2.5-15.0.1.el7.x86_6453/85Verifying:policycoreutils-python-2.2.5-15.0.1.el7.x86_6454/85Verifying:cryptsetup-python-1.6.6-3.el7.x86_6455/85Verifying:7:oraclelinux-release-7.1-1.0.5.el7.x86_6456/85Verifying:7:device-mapper-event-libs-1.02.93-3.el7.x86_6457/85Verifying:dracut-033-240.0.1.el7.x86_6458/85Verifying:cryptsetup-1.6.6-3.el7.x86_6459/85Verifying:setools-libs-3.3.7-46.el7.x86_6460/85Verifying:initscripts-9.49.24-1.0.1.el7.x86_6461/85Verifying:kmod-14-10.el7.x86_6462/85Verifying:systemd-python-208-20.0.1.el7.x86_6463/85Verifying:cryptsetup-libs-1.6.6-3.el7.x86_6464/85Verifying:dracut-network-033-240.0.1.el7.x86_6465/85Verifying:glib2-2.40.0-4.el7.x86_6466/85Verifying:libnl3-cli-3.2.21-8.0.1.el7.x86_6467/85Verifying:libnl3-3.2.21-8.0.1.el7.x86_6468/85Verifying:7:device-mapper-event-1.02.93-3.el7.x86_6469/85Verifying:libselinux-python-2.2.2-6.el7.x86_6470/85Verifying:libsemanage-2.1.10-16.el7.x86_6471/85Verifying:libseccomp-2.1.1-2.el7.x86_6472/85Verifying:libsepol-2.1.9-3.el7.x86_6473/85Verifying:7:lvm2-python-libs-2.02.115-3.el7.x86_6474/85Verifying:7:device-mapper-1.02.93-3.el7.x86_6475/85Verifying:selinux-policy-3.13.1-23.0.1.el7.noarch76/85Verifying:libselinux-2.2.2-6.el7.x86_6477/85Verifying:1:redhat-release-server-7.1-1.0.2.el7.x86_6478/85Verifying:libgudev1-208-20.0.1.el7.x86_6479/85Verifying:7:lvm2-2.02.115-3.el7.x86_6480/85Verifying:7:lvm2-libs-2.02.115-3.el7.x86_6481/85Verifying:7:device-mapper-libs-1.02.93-3.el7.x86_6482/85Verifying:device-mapper-persistent-data-0.4.1-2.el7.x86_6483/85Verifying:selinux-policy-targeted-3.13.1-23.0.1.el7.noarch84/85Verifying:systemd-208-20.0.1.el7.x86_6485/85Installed:docker-engine.x86_640:18.09.1.ol-1.0.5.el7DependencyInstalled:container-selinux.noarch2:2.77-5.el7containerd.x86_640:1.2.0-1.0.5.el7criu.x86_640:3.9-5.el7docker-cli.x86_640:18.09.1.ol-1.0.5.el7libnet.x86_640:1.1.6-7.el7lz4.x86_640:1.7.5-2.0.1.el7protobuf-c.x86_640:1.0.2-3.el7runc.x86_640:1.0.0-19.rc5.git4bb1fe4.0.3.el7Updated:dracut.x86_640:033-554.0.3.el7initscripts.x86_640:9.49.46-1.0.1.el7oraclelinux-release.x86_647:7.6-1.0.15.el7redhat-release-server.x86_641:7.6-4.0.1.el7DependencyUpdated:cryptsetup.x86_640:2.0.3-3.el7cryptsetup-libs.x86_640:2.0.3-3.el7cryptsetup-python.x86_640:2.0.3-3.el7device-mapper.x86_647:1.02.149-10.0.3.el7_6.8device-mapper-event.x86_647:1.02.149-10.0.3.el7_6.8device-mapper-event-libs.x86_647:1.02.149-10.0.3.el7_6.8device-mapper-libs.x86_647:1.02.149-10.0.3.el7_6.8device-mapper-persistent-data.x86_640:0.7.3-3.el7dracut-config-rescue.x86_640:033-554.0.3.el7dracut-network.x86_640:033-554.0.3.el7glib2.x86_640:2.56.1-4.el7_6kmod.x86_640:20-23.0.1.el7libgudev1.x86_640:219-62.0.4.el7_6.7libnl3.x86_640:3.2.28-4.el7libnl3-cli.x86_640:3.2.28-4.el7libseccomp.x86_640:2.3.1-3.el7libselinux.x86_640:2.5-14.1.el7libselinux-python.x86_640:2.5-14.1.el7libselinux-utils.x86_640:2.5-14.1.el7libsemanage.x86_640:2.5-14.el7libsemanage-python.x86_640:2.5-14.el7libsepol.x86_640:2.5-10.el7lvm2.x86_647:2.02.180-10.0.3.el7_6.8lvm2-libs.x86_647:2.02.180-10.0.3.el7_6.8lvm2-python-libs.x86_647:2.02.180-10.0.3.el7_6.8policycoreutils.x86_640:2.5-29.0.1.el7_6.1policycoreutils-python.x86_640:2.5-29.0.1.el7_6.1selinux-policy.noarch0:3.13.1-229.0.3.el7_6.12selinux-policy-targeted.noarch0:3.13.1-229.0.3.el7_6.12setools-libs.x86_640:3.3.8-4.el7systemd.x86_640:219-62.0.4.el7_6.7systemd-libs.x86_640:219-62.0.4.el7_6.7systemd-python.x86_640:219-62.0.4.el7_6.7systemd-sysv.x86_640:219-62.0.4.el7_6.7Complete!

一旦安装完成,就可以启动docker服务

[root@localhostsoft]#servicedockerstartRedirectingto/bin/systemctlstartdocker.service[root@localhostsoft]#systemctlenabledocker[root@localhostsoft]#servicedockerstatusRedirectingto/bin/systemctlstatusdocker.service鈼[0mdocker.service-DockerApplicationContainerEngineLoaded:loaded(/usr/lib/systemd/system/docker.service;enabled;vendorpreset:disabled)Drop-In:/etc/systemd/system/docker.service.d鈹斺攢docker-sysconfig.confActive:active(running)sinceMon2019-06-1023:15:05CST;6hleftDocs:https://docs.docker.comMainPID:1452(dockerd)Memory:132.2MCGroup:/system.slice/docker.service鈹溾攢1452/usr/bin/dockerd--selinux-enabled--storage-driverdevicemapper--storage-optdm.basesize=25G鈹斺攢2436containerd--config/var/run/docker/containerd/containerd.toml--log-levelinfoJun1023:15:03localhost.localdomaindockerd[1452]:time="2019-06-10T23:15:03.843382248+08:00"level=infomsg="Successfullycreatedfilesystemxfsondevicedocker-253:0-1047242-base"storage-driver=devicemapperJun1023:15:04localhost.localdomaindockerd[1452]:time="2019-06-10T23:15:04.076789613+08:00"level=infomsg="Graphmigrationtocontent-addressabilitytook0.00seconds"Jun1023:15:04localhost.localdomaindockerd[1452]:time="2019-06-10T23:15:04.078665673+08:00"level=warningmsg="mountpointforpidsnotfound"Jun1023:15:04localhost.localdomaindockerd[1452]:time="2019-06-10T23:15:04.079906275+08:00"level=infomsg="Loadingcontainers:start."Jun1023:15:04localhost.localdomaindockerd[1452]:time="2019-06-10T23:15:04.554467519+08:00"level=infomsg="Defaultbridge(docker0)isassignedwithanIPaddress172.17.0.0/16.Daemonoption--bipcanbeusedto...rredIPaddress"Jun1023:15:04localhost.localdomaindockerd[1452]:time="2019-06-10T23:15:04.859786800+08:00"level=infomsg="Loadingcontainers:done."Jun1023:15:04localhost.localdomaindockerd[1452]:time="2019-06-10T23:15:04.959099871+08:00"level=infomsg="Dockerdaemon"commit=c3ab8a8graphdriver(s)=devicemapperversion=18.09.1-olJun1023:15:04localhost.localdomaindockerd[1452]:time="2019-06-10T23:15:04.959938124+08:00"level=infomsg="Daemonhascompletedinitialization"Jun1023:15:05localhost.localdomaindockerd[1452]:time="2019-06-10T23:15:05.053166130+08:00"level=infomsg="APIlistenon/var/run/docker.sock"Jun1023:15:05localhost.localdomainsystemd[1]:StartedDockerApplicationContainerEngine.Hint:Somelineswereellipsized,use-ltoshowinfull.

然后可以下载镜像文件

[root@localhostsoft]#dockerpullmysql/mysql-server:5.7Tryingtopullrepositorydocker.io/mysql/mysql-server...5.7:Pullingfromdocker.io/mysql/mysql-server35defbf6c365:Pullcomplete0fa46ab0f51d:Pullcompletef70f5000008c:Pullcomplete892ac46af8c0:PullcompleteDigest:sha256:ddb046076781a15200d36cb01f8f512431c3481bedebd5e92646d8c617ae212cStatus:Downloadednewerimageformysql/mysql-server:5.7[root@localhostsoft]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEmysql/mysql-server5.7857eadf53a546weeksago258MB

使用Docker来部署MySQL
下载MySQL Server Docker镜像文件
严格来说,不需要在单独的步骤中下载服务器镜像,但是,在创建Docker容器之前执行此步骤可以确保本地映像是最新的。为了下载MySQL社区版镜像,执行以下命令:

dockerpullmysql/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@localhostsoft]#dockerpullmysql/mysql-server:5.7Tryingtopullrepositorydocker.io/mysql/mysql-server...5.7:Pullingfromdocker.io/mysql/mysql-server35defbf6c365:Pullcomplete0fa46ab0f51d:Pullcompletef70f5000008c:Pullcomplete892ac46af8c0:PullcompleteDigest:sha256:ddb046076781a15200d36cb01f8f512431c3481bedebd5e92646d8c617ae212cStatus:Downloadednewerimageformysql/mysql-server:5.7

如果要显示Docker镜像可以执行以下命令:

[root@localhostsoft]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEmysql/mysql-server5.7857eadf53a546weeksago258MB

为了下载MySQL企业版本镜像,执行以下命令:

dockerpullstore/oracle/mysql-enterprise-server:5.7

5.7是我们想要pull的镜像版本。MySQL企业版本容器只提供了最新的通用可用版本5.7

启动MySQL Server实例
为MySQL社区版本服务器启动一个新的Docker容器执行以下命令:

[root@localhost~]#dockerrun--name=mysql1-dmysql/mysql-server:5.75128014e440f10c557b52e6203445a01c97728e432d0f231c6027bf4b15520bd

为MySQL企业版本服务器启动一个新的Docker容器执行以下命令:

dockerrun--name=mysql1-dstore/oracle/mysql-enterprise-server:tag

--name选项,用来为你的服务容器指定名字(例如mysql1),它是可选项。如果没有提供容器名,会生成一个随机容器名。如果之前的docker pull或docker run命令所指定名称或标记的Docker镜像没有下载,那么镜像现在就会被下载。在下载完成后,开始初始化容器,并且当你执行docker ps命令时容器会出现在正在运行的容器列表中。例如:

[root@localhost~]#dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES5128014e440fmysql/mysql-server:5.7"/entrypoint.shmysq鈥42secondsagoUp39seconds(health:starting)3306/tcp,33060/tcpmysql1

IMAGE列的输出对于MySQL社区版本读取的值为mysql/mysql-server,对于MySQL企业版本读取的值为store/oracle/mysql-enterprise-server。
容器初始化可能会花费一些时间。当服务准备好使用时,docker ps命令输出的STATUS列将从(health: starting)改变为(healthy)。

在上面的docker run命令中-d选项使容器在后台运行。使用下面的命令可以监控容器的输出信息:

[root@localhost~]#dockerlogsmysql1[Entrypoint]MySQLDockerImage5.7.26-1.1.11[Entrypoint]Nopasswordoptionspecifiedfornewdatabase.[Entrypoint]Arandomonetimepasswordwillbegenerated.[Entrypoint]Initializingdatabase[Entrypoint]DatabaseinitializedWarning:Unabletoload'/usr/share/zoneinfo/iso3166.tab'astimezone.Skippingit.Warning:Unabletoload'/usr/share/zoneinfo/leapseconds'astimezone.Skippingit.Warning:Unabletoload'/usr/share/zoneinfo/tzdata.zi'astimezone.Skippingit.Warning:Unabletoload'/usr/share/zoneinfo/zone.tab'astimezone.Skippingit.Warning:Unabletoload'/usr/share/zoneinfo/zone1970.tab'astimezone.Skippingit.[Entrypoint]GENERATEDROOTPASSWORD:3z[omLAk4Jaz@sYxDiLYnyPySYfR[Entrypoint]ignoring/docker-entrypoint-initdb.d/*[Entrypoint]Servershutdown[Entrypoint]Settingrootuserasexpired.Passwordwillneedtobechangedbeforedatabasecanbeused.[Entrypoint]MySQLinitprocessdone.Readyforstartup.[Entrypoint]StartingMySQL5.7.26-1.1.11

一旦初始化完成,命令的输出将会包含为root用户生成随机密码的信息,也可以执行下面的命令来检查密码:

[root@localhost~]#dockerlogsmysql12>&1|grepGENERATED[Entrypoint]GENERATEDROOTPASSWORD:3z[omLAk4Jaz@sYxDiLYnyPySYfR

在容器中连接MySQL服务器
一旦服务可以使用后,可以在刚刚启动的MySQL服务容器中运行mysql客户端程序并连接到MySQL服务。在刚刚启动的Docker容器中使用docker exec -it命令来启动mysql客户端程序,例如:

[root@localhost~]#dockerexec-itmysql1mysql-uroot-pEnterpassword:WelcometotheMySQLmonitor.Commandsendwith;or\g.YourMySQLconnectionidis107Serverversion:5.7.26Copyright(c)2000,2019,Oracleand/oritsaffiliates.Allrightsreserved.OracleisaregisteredtrademarkofOracleCorporationand/oritsaffiliates.Othernamesmaybetrademarksoftheirrespectiveowners.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.mysql>

在执行上面的命令时需要输入root用户生成的密码。因为mysql_onetime_password选项缺省情况为true(对于MySQL社区版本来说),在mysql客户端连接到MySQL服务后,必须要通过执行以下命令来修改root用户的密码:

mysql>ALTERUSER'root'@'localhost'IDENTIFIEDBY'123456';QueryOK,0rowsaffected(0.00sec)

一旦修改密码后,MySQL服务就可以使用。

容器Shell访问
为了使用shell访问你的MySQL服务器容器,在容器中使用docker exec -it命令来启动bash shell:

[root@localhost~]#dockerexec-itmysql1bashbash-4.2#

在启动bash shell后,在容器中可以运行linux命令,例如,为了查看容器中的MySQL数据库的数据目录中的内容,执行以下命令:

bash-4.2#ls/var/lib/mysqlauto.cnfca.pemclient-key.pemib_logfile0ibdata1mysqlmysql.sock.lockprivate_key.pemserver-cert.pemsysca-key.pemclient-cert.pemib_buffer_poolib_logfile1ibtmp1mysql.sockperformance_schemapublic_key.pemserver-key.pem

停止与删除一个MySQL容器
为了停止已经创建的MySQL服务容器执行下面的命令:

[root@localhost~]#dockerstopmysql1mysql1[root@localhost~]#dockerps-lCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES5128014e440fmysql/mysql-server:5.7"/entrypoint.shmysql"21hoursagoExited(0)8secondsagomysql1

docker stop将发送一个SIGTERM信号给mysqld进程,因此服务将被优雅的关闭。
还可以观察到当一个容器的主进程(一个MySQL服务容器的主进程为mysqld)被关闭,Docker容器也会自动关闭。

启动MySQL服务容器:

[root@localhost~]#dockerstartmysql1mysql1[root@localhost~]#dockerps-lCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES5128014e440fmysql/mysql-server:5.7"/entrypoint.shmysql"22hoursagoUp5seconds(health:starting)3306/tcp,33060/tcpmysql1[root@localhost~]#dockerps-lCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES5128014e440fmysql/mysql-server:5.7"/entrypoint.shmysql"22hoursagoUp15seconds(health:starting)3306/tcp,33060/tcpmysql1[root@localhost~]#dockerps-lCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES5128014e440fmysql/mysql-server:5.7"/entrypoint.shmysql"22hoursagoUp21seconds(health:starting)3306/tcp,33060/tcpmysql1[root@localhost~]#dockerps-lCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES5128014e440fmysql/mysql-server:5.7"/entrypoint.shmysql"22hoursagoUp32seconds(healthy)3306/tcp,33060/tcpmysql1

为了使用单个命令停止与再次启动MySQL服务容器:

[root@localhost~]#dockerrestartmysql1mysql1[root@localhost~]#dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES5128014e440fmysql/mysql-server:5.7"/entrypoint.shmysql"24hoursagoUp6seconds(health:starting)3306/tcp,33060/tcpmysql1

为了删除MySQL容器,首先停止容器,然后再使用docker rm命令:

[root@localhost~]#dockerstopmysql1mysql1[root@localhost~]#dockerps-lCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES5128014e440fmysql/mysql-server:5.7"/entrypoint.shmysq1"24hoursagoExited(0)12secondsagomysql1[root@localhost~]#dockerrmmysql1mysql1[root@localhost~]#dockerps-lCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES

为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社区版本服务器

dockerrun--namemysql1-dmysql/mysql-server:5.7--character-set-server=utf8mb4--collation-server=utf8mb4_col

对于MySQL企业版本服务器:

dockerrun--namemysql1-dstore/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~]#dockerinspectmysql1..."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服务器容器,并将数据目录和服务器配置文件绑定在一起:

dockerrun--name=mysql1\--mounttype=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf\--mounttype=bind,src=/path-on-host-machine/datadir,dst=/var/lib/mysql\-dmysql/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

dockerrun--name=mysql1\--mounttype=bind,src=/path-on-host-machine/scripts/,dst=/docker-entrypoint-initdb.d/\-dmysql/mysql-server:tag

对于MySQL企业版本服务器容器:

dockerrun--name=mysql1\--mounttype=bind,src=/path-on-host-machine/scripts/,dst=/docker-entrypoint-initdb.d/\-dstore/oracle/mysql-enterprise-server:tag

从另一个Docker容器中的应用程序连接到MySQL
通过建立一个Docker网络,你可以让多个Docker容器相互通信,这样,在另一个Docker容器中的客户端应用程序就可以在服务器容器中访问MySQL服务器。首先,创建一个Docker网络:

dockernetworkcreatemy-custom-net

然后,当您创建并启动服务器和客户端容器时,使用-network选项将它们放在您创建的网络上。例如:

dockerrun--name=mysql1--network=my-custom-net-dmysql/mysql-serverdockerrun--name=myapp1--network=my-custom-net-dmyapp

当使用MySQL企业版本服务器容器:

dockerrun--name=mysql1--network=my-custom-net-dstore/oracle/mysql-enterprise-serverdockerrun--name=myapp1--network=my-custom-net-dmyapp

myapp1容器随后可以与mysql1主机连接到mysql1容器,反之亦然,因为Docker会自动为给定的容器名称设置一个DNS。在下面的例子中,我们从myapp1容器中运行mysql客户端,以便在自己的容器中连接主机mysql1:

dockerexec-itmyapp1mysql--host=mysql1--user=myuser--password