docker for CentOS 七 瀹夎

docker for CentOS 7 瀹夎

1銆佸畨瑁?CentOS 7 64bit

聽聽 纭繚centos 鏈€灏忓唴鏍哥増鏈?.10鍙婂叾浠ヤ笂

$ uname -r
3.10.0-229.el7.x86_64

2銆佸畨瑁匘ocker锛坹um鏂瑰紡瀹夎锛?/p>

2.1銆佸垱寤篸ocker鐢ㄦ埛

2.2銆佹坊鍔燿ocker鐢ㄦ埛鍒皊udoers鏂囦欢涓?/p>

聽聽聽 #vim聽 /etc/sudoers 鎵惧埌杩欎竴琛岋細鈥漴oot ALL=(ALL) ALL鈥濓紝鍦ㄥ叾涓嬮潰娣诲姞

聽聽聽 docker ALL=(ALL) ALL

3.瀹夎docker

3.1. Log into your machine as a user with sudo or root privileges.

3.2. Make sure your existing yum packages are up-to-date.

$ sudo yum update

3.3.聽 Add the yum repo.

$ sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

聽聽聽

3.4. Install the Docker package.

$ sudo yum install docker-engine

[docker@localhost ~]$ sudo yum install docker-engine
[sudo] password for docker:
Loaded plugins: fastestmirror, langpacks
base聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 | 3.6 kB聽聽聽聽 00:00聽聽聽聽
dockerrepo聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 | 2.9 kB聽聽聽聽 00:00聽聽聽聽
extras聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 | 3.4 kB聽聽聽聽 00:00聽聽聽聽
updates聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 | 3.4 kB聽聽聽聽 00:00聽聽聽聽
(1/3): extras/7/x86_64/primary_db聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 | 165 kB聽 00:00:01聽聽聽聽
(2/3): dockerrepo/primary_db聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 |聽 20 kB聽 00:00:01聽聽聽聽
(3/3): updates/7/x86_64/primary_db聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 | 7.8 MB聽 00:04:32聽聽聽聽
Determining fastest mirrors
聽* base: mirrors.sina.cn
聽* extras: mirrors.cn99.com
聽* updates: mirrors.cn99.com
Resolving Dependencies
--> Running transaction check
---> Package docker-engine.x86_64 0:1.12.1-1.el7.centos will be installed
--> Processing Dependency: docker-engine-selinux >= 1.12.1-1.el7.centos for package: docker-engine-1.12.1-1.el7.centos.x86_64
--> Running transaction check
---> Package docker-engine-selinux.noarch 0:1.12.1-1.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================
聽Package聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Arch聽聽聽聽聽聽聽聽聽 Version聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Repository聽聽聽聽聽聽聽聽 Size
===============================================================================================
Installing:
聽docker-engine聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 x86_64聽聽聽聽聽聽聽 1.12.1-1.el7.centos聽聽聽聽聽聽聽 dockerrepo聽聽聽聽聽聽聽聽 19 M
Installing for dependencies:
聽docker-engine-selinux聽聽聽聽聽聽聽 noarch聽聽聽聽聽聽聽 1.12.1-1.el7.centos聽聽聽聽聽聽聽 dockerrepo聽聽聽聽聽聽聽聽 28 k

Transaction Summary
===============================================================================================
Install聽 1 Package (+1 Dependent package)

Total download size: 19 M
Installed size: 79 M
Is this ok [y/d/N]: y锛堣緭鍏?y锛?/p>

Downloading packages:
warning: /var/cache/yum/x86_64/7/dockerrepo/packages/docker-engine-selinux-1.12.1-1.el7.centos.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 2c52609d: NOKEY
Public key for docker-engine-selinux-1.12.1-1.el7.centos.noarch.rpm is not installed
(1/2): docker-engine-selinux-1.12.1-1.el7.centos.noarch.rpm聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 |聽 28 kB聽 00:00:01聽聽聽聽
(2/2): docker-engine-1.12.1-1.el7.centos.x86_64.rpm聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 |聽 19 MB聽 00:01:05聽聽聽聽
--------------------------------------------------------------------------------------------------------------------------------------------
Total聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 295 kB/s |聽 19 MB聽 00:01:05聽聽聽聽
Retrieving key from https://yum.dockerproject.org/gpg
Importing GPG key 0x2C52609D:
聽Userid聽聽聽聽 : "Docker Release Tool (releasedocker) <docker@docker.com>"
聽Fingerprint: 5811 8e89 f3a9 1289 7c07 0adb f762 2157 2c52 609d
聽From聽聽聽聽聽聽 : https://yum.dockerproject.org/gpg
Is this ok [y/N]: y锛堣緭鍏?y锛?/p>

Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
聽 Installing : docker-engine-selinux-1.12.1-1.el7.centos.noarch聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 1/2
restorecon:聽 lstat(/var/lib/docker) failed:聽 No such file or directory
warning: %post(docker-engine-selinux-1.12.1-1.el7.centos.noarch) scriptlet failed, exit status 255
Non-fatal POSTIN scriptlet failure in rpm package docker-engine-selinux-1.12.1-1.el7.centos.noarch
聽 Installing : docker-engine-1.12.1-1.el7.centos.x86_64聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 2/2
聽 Verifying聽 : docker-engine-selinux-1.12.1-1.el7.centos.noarch聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 1/2
聽 Verifying聽 : docker-engine-1.12.1-1.el7.centos.x86_64聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 2/2

Installed:
聽 docker-engine.x86_64 0:1.12.1-1.el7.centos聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽

Dependency Installed:
聽 docker-engine-selinux.noarch 0:1.12.1-1.el7.centos聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽

Complete!

3.5. Start the Docker daemon.

$ sudo service docker start
[sudo] password for docker: 杈撳叆瀵嗙爜
Redirecting to /bin/systemctl start  docker.service

3.6. Verify docker is installed correctly by running a test image in a container.

$ sudo docker run hello-world
   Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world

c04b14da8d14: Pull complete 
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest

Hello 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 the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker Hub account:
 https://hub.docker.com

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/

3.7. 鏌ョ湅闀滃儚淇℃伅

[docker@localhost ~]$ docker images
REPOSITORY聽聽聽聽聽聽聽聽聽 TAG聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 IMAGE ID聽聽聽聽聽聽聽聽聽聽聽 CREATED聽聽聽聽聽聽聽聽聽聽聽聽 SIZE
hello-world聽聽聽聽聽聽聽聽 latest聽聽聽聽聽聽聽聽聽聽聽聽聽 c54a2cc56cbb聽聽聽聽聽聽聽 12 weeks ago聽聽聽聽聽聽聽 1.848 kB


3.8. 鑾峰彇闀滃儚鐨勮缁嗕俊鎭?/p>

[docker@localhost ~]$ docker inspect c54a2cc56cbb ( 鍗?IMAGE ID聽 )
[
聽聽聽 {
聽聽聽聽聽聽聽 "Id": "sha256:c54a2cc56cbb2f04003c1cd4507e118af7c0d340fe7e2720f70976c4b75237dc",
聽聽聽聽聽聽聽 "RepoTags": [
聽聽聽聽聽聽聽聽聽聽聽 "hello-world:latest"
聽聽聽聽聽聽聽 ],
聽聽聽聽聽聽聽 "RepoDigests": [
聽聽聽聽聽聽聽聽聽聽聽 "hello-world@sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9"
聽聽聽聽聽聽聽 ],
聽聽聽聽聽聽聽 "Parent": "",
聽聽聽聽聽聽聽 "Comment": "",
聽聽聽聽聽聽聽 "Created": "2016-07-01T19:39:27.532838486Z",
聽聽聽聽聽聽聽 "Container": "562cadb4d17bbf30b58ab0f6a870be60c8d36d2e401bf637f1d2d7f8afbef666",
聽聽聽聽聽聽聽 "ContainerConfig": {
聽聽聽聽聽聽聽聽聽聽聽 "Hostname": "c65bc554a4b7",
聽聽聽聽聽聽聽聽聽聽聽 "Domainname": "",
聽聽聽聽聽聽聽聽聽聽聽 "User": "",
聽聽聽聽聽聽聽聽聽聽聽 "AttachStdin": false,
聽聽聽聽聽聽聽聽聽聽聽 "AttachStdout": false,
聽聽聽聽聽聽聽聽聽聽聽 "AttachStderr": false,
聽聽聽聽聽聽聽聽聽聽聽 "Tty": false,
聽聽聽聽聽聽聽聽聽聽聽 "OpenStdin": false,
聽聽聽聽聽聽聽聽聽聽聽 "StdinOnce": false,
聽聽聽聽聽聽聽聽聽聽聽 "Env": [
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
聽聽聽聽聽聽聽聽聽聽聽 ],
聽聽聽聽聽聽聽聽聽聽聽 "Cmd": [
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "/bin/sh",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "-c",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "#(nop) CMD [\"/hello\"]"
聽聽聽聽聽聽聽聽聽聽聽 ],
聽聽聽聽聽聽聽聽聽聽聽 "Image": "sha256:0f9bb7da10de694b2babd0c1a3b75582a0db3395625cae5ab0fe537ce1cd831e",
聽聽聽聽聽聽聽聽聽聽聽 "Volumes": null,
聽聽聽聽聽聽聽聽聽聽聽 "WorkingDir": "",
聽聽聽聽聽聽聽聽聽聽聽 "Entrypoint": null,
聽聽聽聽聽聽聽聽聽聽聽 "OnBuild": null,
聽聽聽聽聽聽聽聽聽聽聽 "Labels": {}
聽聽聽聽聽聽聽 },
聽聽聽聽聽聽聽 "DockerVersion": "1.10.3",
聽聽聽聽聽聽聽 "Author": "",
聽聽聽聽聽聽聽 "Config": {
聽聽聽聽聽聽聽聽聽聽聽 "Hostname": "c65bc554a4b7",
聽聽聽聽聽聽聽聽聽聽聽 "Domainname": "",
聽聽聽聽聽聽聽聽聽聽聽 "User": "",
聽聽聽聽聽聽聽聽聽聽聽 "AttachStdin": false,
聽聽聽聽聽聽聽聽聽聽聽 "AttachStdout": false,
聽聽聽聽聽聽聽聽聽聽聽 "AttachStderr": false,
聽聽聽聽聽聽聽聽聽聽聽 "Tty": false,
聽聽聽聽聽聽聽聽聽聽聽 "OpenStdin": false,
聽聽聽聽聽聽聽聽聽聽聽 "StdinOnce": false,
聽聽聽聽聽聽聽聽聽聽聽 "Env": [
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
聽聽聽聽聽聽聽聽聽聽聽 ],
聽聽聽聽聽聽聽聽聽聽聽 "Cmd": [
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "/hello"
聽聽聽聽聽聽聽聽聽聽聽 ],
聽聽聽聽聽聽聽聽聽聽聽 "Image": "sha256:0f9bb7da10de694b2babd0c1a3b75582a0db3395625cae5ab0fe537ce1cd831e",
聽聽聽聽聽聽聽聽聽聽聽 "Volumes": null,
聽聽聽聽聽聽聽聽聽聽聽 "WorkingDir": "",
聽聽聽聽聽聽聽聽聽聽聽 "Entrypoint": null,
聽聽聽聽聽聽聽聽聽聽聽 "OnBuild": null,
聽聽聽聽聽聽聽聽聽聽聽 "Labels": {}
聽聽聽聽聽聽聽 },
聽聽聽聽聽聽聽 "Architecture": "amd64",
聽聽聽聽聽聽聽 "Os": "linux",
聽聽聽聽聽聽聽 "Size": 1848,
聽聽聽聽聽聽聽 "VirtualSize": 1848,
聽聽聽聽聽聽聽 "GraphDriver": {
聽聽聽聽聽聽聽聽聽聽聽 "Name": "devicemapper",
聽聽聽聽聽聽聽聽聽聽聽 "Data": {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "DeviceId": "2",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "DeviceName": "docker-8:3-37159125-ff753638d0db8bd72bf5fdaee2daf93d080e9147197b2936e044717d417f18b9",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "DeviceSize": "10737418240"
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 },
聽聽聽聽聽聽聽 "RootFS": {
聽聽聽聽聽聽聽聽聽聽聽 "Type": "layers",
聽聽聽聽聽聽聽聽聽聽聽 "Layers": [
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "sha256:a02596fdd012f22b03af6ad7d11fa590c57507558357b079c3e8cebceb4262d7"
聽聽聽聽聽聽聽聽聽聽聽 ]
聽聽聽聽聽聽聽 }
聽聽聽 }
]