前言
學習docker,將工作中部署所需換成用docker來實現。
測試環境:CentOS 7 ,內核: 3.10.0-327.el7.x86_64
因CentOS7支持容器,安裝docker變的非常簡單。
- 安裝
yum install docker
安裝版本:docker.x86_64.0.1.10.3-46.el7.centos.10
- 啟動
systemctl start docker.service #啟動
systemctl stop docker.service #停止
systemctl status docker.service #狀態檢查
檢查啟動狀態
[root@wxtest1607 ~]# systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since 二 2016-08-23 10:42:07 CST; 36s ago
Docs: https://docs.docker.com
Main PID: 73731 (docker)
Memory: 31.5M
CGroup: /system.slice/docker.service
├─73731 /usr/bin/docker daemon -H fd://
└─73742 docker-containerd -l /var/run/docker/libcontainerd/docker-containerd.sock --runtime docker-runc --start-timeout 2m
8月 23 10:42:07 wxtest1607.chances.com.cn docker[73731]: time="2016-08-23T10:42:07.352691176+08:00" level=info msg="Graph migration to content-addressability took 0.00 seconds"
8月 23 10:42:07 wxtest1607.chances.com.cn docker[73731]: time="2016-08-23T10:42:07.369773502+08:00" level=info msg="Firewalld running: false"
8月 23 10:42:07 wxtest1607.chances.com.cn docker[73731]: time="2016-08-23T10:42:07.708721498+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
8月 23 10:42:07 wxtest1607.chances.com.cn docker[73731]: time="2016-08-23T10:42:07.904729241+08:00" level=warning msg="mountpoint for pids not found"
8月 23 10:42:07 wxtest1607.chances.com.cn docker[73731]: time="2016-08-23T10:42:07.905311783+08:00" level=info msg="Loading containers: start."
8月 23 10:42:07 wxtest1607.chances.com.cn docker[73731]: time="2016-08-23T10:42:07.905375897+08:00" level=info msg="Loading containers: done."
8月 23 10:42:07 wxtest1607.chances.com.cn docker[73731]: time="2016-08-23T10:42:07.905397089+08:00" level=info msg="Daemon has completed initialization"
8月 23 10:42:07 wxtest1607.chances.com.cn docker[73731]: time="2016-08-23T10:42:07.905412870+08:00" level=info msg="Docker daemon" commit=b9f10c9 graphdriver=devicemapper version=1.11.2
8月 23 10:42:07 wxtest1607.chances.com.cn docker[73731]: time="2016-08-23T10:42:07.913417023+08:00" level=info msg="API listen on /var/run/docker.sock"
8月 23 10:42:07 wxtest1607.chances.com.cn systemd[1]: Started Docker Application Container Engine.
- 測試docker-下載鏡像
#docker pull hello-world #下載鏡像
#docker images #查看鏡像
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest c54a2cc56cbb 7 weeks ago 1.848 kB
#docker run hello-world #運行鏡像
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/
- 停止容器
docker ps -a #查看當前啟動的容器進程
[root@wxtest1607 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1f5f0834e067 hello-world "/hello" 15 minutes ago Exited (0) 15 minutes ago lonely_colden
docker stop 1f5f
- 移除容器
docker rm 1f5f #移除容器
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 設置docker開機自啟動
systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
#就是把啟動文件link到相應的目錄下呀!
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket
Requires=docker.socket
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/docker daemon -H fd://
MountFlags=slave
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
[Install]
WantedBy=multi-user.target
[root@wxtest1607 ~]#
安裝docker1.12,官方推薦
root賬號登陸
第一步:yum update
第二步: 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
第三步:yum install docker-engine
第四步:systemctl enable docker.service
第五步:systemctl start docker.service
第六步:docker --version
Docker version 1.12.1, build 23cf638
(看到這個版本ok)
第七步:docker run hello-world
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/
測試通過