参考链接:https://blog.csdn.net/laughing1997/article/details/84305615
docker的官方安装教程:https://docs.docker.com/engine/install/centos/
1.1.1安装Docker
1.1.1.1第一步:安装工具包
$ sudo yum install -y yum-utils #安装工具包,缺少这些依赖将无法完成
执行结果:
Loaded plugins: fastestmirror, langpacksbase | 3.6 kB 00:00:00epel | 4.3 kB 00:00:00extras | 3.4 kB 00:00:00update | 3.4 kB 00:00:00(1/3): epel/7/x86_64/updateinfo | 797 kB 00:00:00(2/3): epel/7/x86_64/primary_db | 4.7 MB 00:00:00(3/3): update/7/x86_64/primary_db | 4.8 MB 00:00:00Loading mirror speeds from cached hostfilePackage yum-utils-1.1.31-40.el7.noarch already installed and latest versionNothing to do
1.1.1.2第二步:设置远程仓库
$sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo执行结果:Loaded plugins: fastestmirror, langpacksadding repo from: https://download.docker.com/linux/centos/docker-ce.repograbbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.reporepo saved to /etc/yum.repos.d/docker-ce.repo
1.1.1.3第三步:安装
$ sudo yum install docker-ce执行结果:Loaded plugins: fastestmirror, langpacksdocker-ce-stable | 2.9 kB 00:00:00docker-ce-stable/x86_64/primary_db | 4.8 kB 00:00:00Loading mirror speeds from cached hostfileResolving Dependencies--> Running transaction check---> Package docker-ce.x86_64 0:17.03.1.ce-1.el7.centos will be installed--> Processing Dependency: docker-ce-selinux >= 17.03.1.ce-1.el7.centos for package: docker-ce-17.03.1.ce-1.el7.centos.x86_64--> Processing Dependency: libcgroup for package: docker-ce-17.03.1.ce-1.el7.centos.x86_64--> Processing Dependency: libseccomp.so.2()(64bit) for package: docker-ce-17.03.1.ce-1.el7.centos.x86_64--> Running transaction check---> Package docker-ce-selinux.noarch 0:17.03.1.ce-1.el7.centos will be installed--> Processing Dependency: policycoreutils-python for package: docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch---> Package libcgroup.x86_64 0:0.41-11.el7 will be installed---> Package libseccomp.x86_64 0:2.3.1-2.el7 will be installed--> Running transaction check---> Package policycoreutils-python.x86_64 0:2.5-11.el7_3 will be installed--> Processing Dependency: setools-libs >= 3.3.8-1 for package: policycoreutils-python-2.5-11.el7_3.x86_64--> Processing Dependency: libsemanage-python >= 2.5-5 for package: policycoreutils-python-2.5-11.el7_3.x86_64--> Processing Dependency: audit-libs-python >= 2.1.3-4 for package: policycoreutils-python-2.5-11.el7_3.x86_64--> Processing Dependency: python-IPy for package: policycoreutils-python-2.5-11.el7_3.x86_64--> Processing Dependency: libqpol.so.1(VERS_1.4)(64bit) for package: policycoreutils-python-2.5-11.el7_3.x86_64--> Processing Dependency: libqpol.so.1(VERS_1.2)(64bit) for package: policycoreutils-python-2.5-11.el7_3.x86_64--> Processing Dependency: libapol.so.4(VERS_4.0)(64bit) for package: policycoreutils-python-2.5-11.el7_3.x86_64--> Processing Dependency: checkpolicy for package: policycoreutils-python-2.5-11.el7_3.x86_64--> Processing Dependency: libqpol.so.1()(64bit) for package: policycoreutils-python-2.5-11.el7_3.x86_64--> Processing Dependency: libapol.so.4()(64bit) for package: policycoreutils-python-2.5-11.el7_3.x86_64--> Running transaction check---> Package audit-libs-python.x86_64 0:2.6.5-3.el7_3.1 will be installed---> Package checkpolicy.x86_64 0:2.5-4.el7 will be installed---> Package libsemanage-python.x86_64 0:2.5-5.1.el7_3 will be installed---> 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--> Finished Dependency ResolutionDependencies Resolved=====================================================================================================================Package Arch Version Repository Size=====================================================================================================================Installing:docker-ce x86_64 17.03.1.ce-1.el7.centos docker-ce-stable 19 MInstalling for dependencies:audit-libs-python x86_64 2.6.5-3.el7_3.1 update 70 kcheckpolicy x86_64 2.5-4.el7 base 290 kdocker-ce-selinux noarch 17.03.1.ce-1.el7.centos docker-ce-stable 28 klibcgroup x86_64 0.41-11.el7 base 65 klibseccomp x86_64 2.3.1-2.el7 base 56 klibsemanage-python x86_64 2.5-5.1.el7_3 update 104 kpolicycoreutils-python x86_64 2.5-11.el7_3 update 445 kpython-IPy noarch 0.75-6.el7 base 32 ksetools-libs x86_64 3.3.8-1.1.el7 base 612 kTransaction Summary=====================================================================================================================Install 1 Package (+9 Dependent packages)Total download size: 20 MInstalled size: 24 MIs this ok [y/d/N]: yDownloading packages:(1/10): audit-libs-python-2.6.5-3.el7_3.1.x86_64.rpm | 70 kB 00:00:00(2/10): checkpolicy-2.5-4.el7.x86_64.rpm | 290 kB 00:00:00(3/10): libseccomp-2.3.1-2.el7.x86_64.rpm | 56 kB 00:00:00(4/10): libcgroup-0.41-11.el7.x86_64.rpm | 65 kB 00:00:00(5/10): policycoreutils-python-2.5-11.el7_3.x86_64.rpm | 445 kB 00:00:00(6/10): setools-libs-3.3.8-1.1.el7.x86_64.rpm | 612 kB 00:00:00(7/10): libsemanage-python-2.5-5.1.el7_3.x86_64.rpm | 104 kB 00:00:00(8/10): python-IPy-0.75-6.el7.noarch.rpm | 32 kB 00:00:00warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEYPublic key for docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch.rpm is not installed(9/10): docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch.rpm | 28 kB 00:00:00(10/10): docker-ce-17.03.1.ce-1.el7.centos.x86_64.rpm | 19 MB 00:00:00---------------------------------------------------------------------------------------------------------------------Total 23 MB/s | 20 MB 00:00:00Retrieving key from https://download.docker.com/linux/centos/gpgImporting GPG key 0x621E9F35:Userid : "Docker Release (CE rpm) <docker@docker.com>"Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35From : https://download.docker.com/linux/centos/gpgIs this ok [y/N]: yRunning transaction checkRunning transaction testTransaction test succeededRunning transactionInstalling : libcgroup-0.41-11.el7.x86_64 1/10Installing : setools-libs-3.3.8-1.1.el7.x86_64 2/10Installing : checkpolicy-2.5-4.el7.x86_64 3/10Installing : libsemanage-python-2.5-5.1.el7_3.x86_64 4/10Installing : audit-libs-python-2.6.5-3.el7_3.1.x86_64 5/10Installing : python-IPy-0.75-6.el7.noarch 6/10Installing : policycoreutils-python-2.5-11.el7_3.x86_64 7/10Installing : docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch 8/10setsebool: SELinux is disabled.libsemanage.semanage_direct_install_info: Overriding docker module at lower priority 100 with module at priority 400.Installing : libseccomp-2.3.1-2.el7.x86_64 9/10Installing : docker-ce-17.03.1.ce-1.el7.centos.x86_64 10/10Verifying : libseccomp-2.3.1-2.el7.x86_64 1/10Verifying : python-IPy-0.75-6.el7.noarch 2/10Verifying : audit-libs-python-2.6.5-3.el7_3.1.x86_64 3/10Verifying : libsemanage-python-2.5-5.1.el7_3.x86_64 4/10Verifying : docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch 5/10Verifying : libcgroup-0.41-11.el7.x86_64 6/10Verifying : policycoreutils-python-2.5-11.el7_3.x86_64 7/10Verifying : docker-ce-17.03.1.ce-1.el7.centos.x86_64 8/10Verifying : checkpolicy-2.5-4.el7.x86_64 9/10Verifying : setools-libs-3.3.8-1.1.el7.x86_64 10/10Installed:docker-ce.x86_64 0:17.03.1.ce-1.el7.centosDependency Installed:audit-libs-python.x86_64 0:2.6.5-3.el7_3.1 checkpolicy.x86_64 0:2.5-4.el7docker-ce-selinux.noarch 0:17.03.1.ce-1.el7.centos libcgroup.x86_64 0:0.41-11.el7libseccomp.x86_64 0:2.3.1-2.el7 libsemanage-python.x86_64 0:2.5-5.1.el7_3policycoreutils-python.x86_64 0:2.5-11.el7_3 python-IPy.noarch 0:0.75-6.el7setools-libs.x86_64 0:3.3.8-1.1.el7Complete!
报错:
错误:docker-ce conflicts with 2:docker-1.13.1-161.git64e9980.el7_8.x86_64错误:docker-ce-cli conflicts with 2:docker-1.13.1-161.git64e9980.el7_8.x86_64
原因:安装了旧版本的docker导致版本冲突,需把原来的docker删除
解决:
sudo yum -y remove docker
报错:
Transaction check error:file /usr/bin/docker from install of docker-ce-cli-1:19.03.8-3.el7.x86_64 conflicts with file from package docker-common-2:1.13.1-161.git64e9980.el7_8.x86_64file /usr/bin/dockerd from install of docker-ce-3:19.03.8-3.el7.x86_64 conflicts with file from package docker-common-2:1.13.1-161.git64e9980.el7_8.x86_64
原因:之前安装了旧版本的docker,需删除旧版本的包
解决:
sudo yum erase docker-common-2:1.13.1-161.git64e9980.el7_8.x86_64
1.1.1.4第四步:启动
$ sudo systemctl start docker或者$ sudo service docker startservice docker start #启动dockerchkconfig docker on #加入开机启动
第五步:查看版本
$ sudo docker version执行结果:Client:Version: 17.03.1-ceAPI version: 1.27Go version: go1.7.5Git commit: c6d412eBuilt: Mon Mar 27 17:05:44 2017OS/Arch: linux/amd64
1.1.1.6第六步:校验
$ sudo docker run hello-world
执行结果: (注意一下,结果没那么快出来)
Unable to find image 'hello-world:latest' locallylatest: Pulling from library/hello-world78445dd45222: Pull completeDigest: sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7Status: Downloaded newer image for hello-world:latestHello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://cloud.docker.com/For more examples and ideas, visit:https://docs.docker.com/engine/userguide/
1.1.2查看Docker版本
docker —help #帮助
docker –v #简单查看版本
docker version #查看版本
Client version: 1.7.1Client API version: 1.19Go version (client): go1.4.2Git commit (client): 786b29d/1.7.1OS/Arch (client): linux/amd64Server version: 1.7.1Server API version: 1.19Go version (server): go1.4.2Git commit (server): 786b29d/1.7.1OS/Arch (server): linux/amd64
docker info #查看信息
Containers: 0Images: 2Storage Driver: devicemapperPool Name: docker-253:0-34097258-poolPool Blocksize: 65.54 kBBacking Filesystem: xfsData file: /dev/loop0Metadata file: /dev/loop1Data Space Used: 308.3 MBData Space Total: 107.4 GBData Space Available: 16.08 GBMetadata Space Used: 782.3 kBMetadata Space Total: 2.147 GBMetadata Space Available: 2.147 GBUdev Sync Supported: trueDeferred Removal Enabled: falseData loop file: /var/lib/docker/devicemapper/devicemapper/dataMetadata loop file: /var/lib/docker/devicemapper/devicemapper/metadataLibrary Version: 1.02.107-RHEL7 (2015-10-14)Execution Driver: native-0.2Logging Driver: json-fileKernel Version: 3.10.0-327.el7.x86_64Operating System: CentOS Linux 7 (Core)CPUs: 4Total Memory: 985.6 MiBName: localhost.localdomainID: B5ZW:FJXF:FNUD:OLH7:FCNI:56DJ:XEQY:I6J4:PPHQ:OKRW:CIJK:Y26P
1.1.3安装其它产品的两种方式
docker安装其它产品有两种方式
方式一:通过拉取事先做好的镜像,例如下面redis的安装方式
方式二:通过Dockerfile来构建新的镜像,例如下面tomcat的安装方式
1.1.4组成结构
docker会自动给docker容器配置一个vip虚拟ip地址
bash-4.1#提示符就代表进入docker容器内部
