CentOS Linux release 7.2.1511
Docker version 17.03.1-ce
安装与启动
yum直接安装的docker版本较低,推荐这样安装:
# 官方,可能网络连不上 curl -sSL https://get.docker.com/ | sh #国内的镜像,推荐 curl -sSL https://get.daocloud.io/docker | sh
启动和验证:
# 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" 3 seconds ago Up 2 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