docker for CentOS 七 瀹夎
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"
聽聽聽聽聽聽聽聽聽聽聽 ]
聽聽聽聽聽聽聽 }
聽聽聽 }
]
聽
聽
聽
聽