CentOS Linux release 7.2.1511
Docker version 17.03.1-ce
安装与启动
yum默认只有旧版本的docker,没有docker-ce,需要添加一个docker-ce的源:
// 这里用的中科大的源,速度会比较理想;而官方的地址是:https://download.docker.com
# wget https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
#yum install -y docker-ce
启动和验证:
# systemctl start docker
# docker -v
Docker version 17.03.1-ce, build c6d412e
查询和下载镜像
查询:
# docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 3217 [OK]
jdeathe/centos-ssh CentOS-6 6.8 x86_64 / CentOS-7 7.3.1611 x8... 63 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC sessi... 24 [OK]
...
没什么特殊原因当然用第一个官方的镜像,理论上应该这样下载docker pull centos,但因为服务器在国外容易失败,所以用国内的源daocloud.io/centos
下载和展示:
# docker pull daocloud.io/centos
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
daocloud.io/centos latest 67591570dd29 11 weeks ago 191.8 MB
启动镜像
# docker run -dti --name hellodocker daocloud.io/centos
参数解析:
-d 后台运行
-t 分配一个伪终端,这样下面才能连进去
-i 保持输入,这样连进去后才能正常使用命令
--name 指定容器的名字,不指定会随机生成一个
从镜像启动后的东西叫容器,通过 ps 查看(ps只显示正在运行的容器,显示所有需要加参数-a):
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c74f53b8dbef daocloud.io/centos "/bin/bash" seconds ago Up seconds hellodocker
第一列是容器id,最后一列是容器名,在下面连接、停止、启动等操作时传入这两者都可以,其中id可以只传前三位类似git那种使用方式;
容器管理
连接到启动的容器用 attach ,连接成功后就可以像操作一台真实的linux一样(不过由于attach到的是同一个/bin/bash所以不支持多用户操作):
# docker attach hellodocker
[root@c74f53b8dbef /]# whoami
root
[root@c74f53b8dbef /]# pwd
/
[root@c74f53b8dbef /]#
attach后退出有两种方式,直接输入exit,但这样会把容器也停掉;不停容器的退出方式是ctrl+p+q;
停止容器:
# docker stop hellodocker //正常关机,需要一点时间
# docker kill hellodocker //这个相当于直接断电
再启动的时候注意不要再用docker run了,那样会重新生成一个新容器,应该这样:
# docker start hellodocker
删除容器和镜像:
# docker rm hellodocker
# docker rmi daocloud.io/centos
over