前言
学习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/
测试通过