9.2 7 Centos7 下安裝 Docker
9.2.1 配置虛擬機
docker 官方文檔要求必須運行在 Linux kernel 3.8 以上,因此須要安裝在 Centos7
或者 Ubantu 系統上。
yum install lrzsz #安裝上傳下載組件
uname –a #檢查當前 Linux 內核版本
查詢結果:
Linux tdocker 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015
x86_64 x86_64 x86_64 GNU/Linux
9.2.2 VM 配置 NAT 模式網絡上網
修改配置文件
cd /etc/sysconfig/network-scripts #進入網絡配置目錄
dir ifcfg* #找到網卡配置文件
ifcfg-eno16777736 ifcfg-lo
vi ifcfg-eno16777736
配置文件內容
TYPE=Ethernet
BOOTPROTO=static #改爲 static,針對 NAT
NAME=eno16777736
UUID=4cc9c89b-cf9e-4847-b9ea-ac713baf4cc8
DEVICE=eno16777736
ONBOOT=yes #開機啓動此網卡
IPADDR=192.168.163.30 #固定 IP 地址
NETMASK=255.255.255.0 #子網掩碼
GATEWAY=192.168.163.2 #網關和 NAT 自動配置的相同,不一樣則沒法登陸
DNS1=192.168.163.2 #和網關相同
測試
centos7命令發生巨大變化
ip addr #查看 IP 地址 ip add
service network restart #重啓網絡
systemctl restart network.service #重啓網絡 centos7
vi /etc/hosts #127.0.0.1 dredis
hostname dreids #注意必須修改機器名 hostname
ping www.baidu.com #若是出現 baidu 的 ip 地址則表示網絡連通
9.2.3 安裝 Docker
9.2.3.1 第一步:安裝工具包
$ sudo yum install -y yum-utils #安裝工具包,缺乏這些依賴將沒法完成
執行結果:
Loaded plugins: fastestmirror, langpacks
base
| 3.6 kB 00:00:00
epel
| 4.3 kB 00:00:00
extras
| 3.4 kB 00:00:00
update
| 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:00
Loading mirror speeds from cached hostfile
Package yum-utils-1.1.31-40.el7.noarch already installed and latest
version
Nothing to do
9.2.3.2 第二步:設置遠程倉庫
$sudo yum-config-manager --add-repo
https://download.docker.com/linux/centos/docker-ce.repo
執行結果:
Loaded plugins: fastestmirror, langpacks
adding repo from:
https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo
to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
9.2.3.3 第三步:安裝
$ sudo yum install docker-ce
執行結果:
Loaded plugins: fastestmirror, langpacks
docker-ce-stable
| 2.9 kB 00:00:00
docker-ce-stable/x86_64/primary_db
| 4.8 kB 00:00:00
Loading mirror speeds from cached hostfile
Resolving 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 Resolution
Dependencies Resolved
====================================================================
=================================================
Package Arch Version
Repository Size
====================================================================
=================================================
Installing:
docker-ce x86_64
17.03.1.ce-1.el7.centos docker-ce-stable 19 M
Installing for dependencies:
audit-libs-python x86_64 2.6.5-3.el7_3.1
update 70 k
checkpolicy x86_64 2.5-4.el7
base 290 k
docker-ce-selinux noarch
17.03.1.ce-1.el7.centos docker-ce-stable 28 k
libcgroup x86_64 0.41-11.el7
base 65 k
libseccomp x86_64 2.3.1-2.el7
base 56 k
libsemanage-python x86_64 2.5-5.1.el7_3
update 104 k
policycoreutils-python x86_64 2.5-11.el7_3
update 445 k
python-IPy noarch 0.75-6.el7
base 32 k
setools-libs x86_64 3.3.8-1.1.el7
base 612 k
Transaction Summary
====================================================================
=================================================
Install 1 Package (+9 Dependent packages)
Total download size: 20 M
Installed size: 24 M
Is this ok [y/d/N]: y
Downloading 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:00
warning:
/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: NOKEY
Public 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:00
Retrieving key from https://download.docker.com/linux/centos/gpg
Importing GPG key 0x621E9F35:
Userid : "Docker Release (CE rpm) <docker@docker.com>"
Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
From : https://download.docker.com/linux/centos/gpg
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : libcgroup-0.41-11.el7.x86_64
1/10
Installing : setools-libs-3.3.8-1.1.el7.x86_64
2/10
Installing : checkpolicy-2.5-4.el7.x86_64
3/10
Installing : libsemanage-python-2.5-5.1.el7_3.x86_64
4/10
Installing : audit-libs-python-2.6.5-3.el7_3.1.x86_64
5/10
Installing : python-IPy-0.75-6.el7.noarch
6/10
Installing : policycoreutils-python-2.5-11.el7_3.x86_64
7/10
Installing : docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch
8/10
setsebool: 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/10
Installing : docker-ce-17.03.1.ce-1.el7.centos.x86_64
10/10
Verifying : libseccomp-2.3.1-2.el7.x86_64
1/10
Verifying : python-IPy-0.75-6.el7.noarch
2/10
Verifying : audit-libs-python-2.6.5-3.el7_3.1.x86_64
3/10
Verifying : libsemanage-python-2.5-5.1.el7_3.x86_64
4/10
Verifying : docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch
5/10
Verifying : libcgroup-0.41-11.el7.x86_64
6/10
Verifying : policycoreutils-python-2.5-11.el7_3.x86_64
7/10
Verifying : docker-ce-17.03.1.ce-1.el7.centos.x86_64
8/10
Verifying : checkpolicy-2.5-4.el7.x86_64
9/10
Verifying : setools-libs-3.3.8-1.1.el7.x86_64
10/10
Installed:
docker-ce.x86_64 0:17.03.1.ce-1.el7.centos
Dependency Installed:
audit-libs-python.x86_64 0:2.6.5-3.el7_3.1
checkpolicy.x86_64 0:2.5-4.el7
docker-ce-selinux.noarch 0:17.03.1.ce-1.el7.centos
libcgroup.x86_64 0:0.41-11.el7
libseccomp.x86_64 0:2.3.1-2.el7
libsemanage-python.x86_64 0:2.5-5.1.el7_3
policycoreutils-python.x86_64 0:2.5-11.el7_3
python-IPy.noarch 0:0.75-6.el7
setools-libs.x86_64 0:3.3.8-1.1.el7
Complete!
9.2.3.4 第四步:啓動
或者
$ sudo service docker start
service docker start #啓動 docker
chkconfig docker on #加入開機啓動
9.2.3.5 第五步:查看版本
$ sudo docker version
執行結果:
Client:
Version: 17.03.1-ce
API version: 1.27
Go version: go1.7.5
Git commit: c6d412e
Built: Mon Mar 27 17:05:44 2017
OS/Arch: linux/amd64
9.2.3.6 第六步:校驗
$ sudo docker run hello-world
執行結果:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
78445dd45222: Pull complete
Digest:
sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7
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 ID:
https://cloud.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
9.2.4 查看 Docker 版本
docker --help #幫助
docker –v #簡單查看版本
docker version #查看版本
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d/1.7.1
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d/1.7.1
OS/Arch (server): linux/amd64
docker info #查看信息
Containers: 0
Images: 2
Storage Driver: devicemapper
Pool Name: docker-253:0-34097258-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 308.3 MB
Data Space Total: 107.4 GB
Data Space Available: 16.08 GB
Metadata Space Used: 782.3 kB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.147 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
Metadata loop file:
/var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.107-RHEL7 (2015-10-14)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.10.0-327.el7.x86_64
Operating System: CentOS Linux 7 (Core)
CPUs: 4
Total Memory: 985.6 MiB
Name: localhost.localdomain
ID: B5ZW:FJXF:FNUD:OLH7:FCNI:56DJ:XEQY:I6J4:PPHQ:OKRW:CIJK:Y26P
9.2.5 安裝其它產品的兩種方式
docker 安裝其它產品有兩種方式
方式一:經過拉取事先作好的鏡像,例以下面 redis 的安裝方式
方式二:經過 Dockerfile 來構建新的鏡像,例以下面 tomcat 的安裝方式
9.2.6 組成結構
docker 會自動給 docker 容器配置一個 vip 虛擬 ip 地址
bash-4.1#提示符就表明進入 docker 容器內部python