- 启动Docker服务
$ serivce docker start
- 创建一个Docker容器
$ docker run -i -t centos /bin/bash
Docker首先检测本地是否有centos镜像,如果没有,链接官方的Docker Hub拉取保存至本地宿主机中。创建出的容器拥有自己的网络,ip,以及一个用来和宿主主机进行通讯的桥接网络接口。最后,我们告诉Docker在新容器 中要运行什么命令。同时,Docker帮我们自动生成一个新容器的ID
- 列出所有Docker容器
$ docker ps -a $ docker ps -l
- 容器命名
$ docker run --name firstdocker -i -t centos /bin/bash
- 重启已经停止的容器
$ docker start firstdocker //或者 $ docker start $ID
- 附着到容器上Docker容器重新启动的时候,会沿用docker run命令时指定的参数来运行,因此我们容器重新启动后会运行一个交互式shell。此外,我们也可以用docker attach命令,重新附着到该容器的绘画上
$ docker attach firstdocker //或者 $ docker attach $ID
- 创建守护式容器
$ docker run --name second_docker -d centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
容器内部输出
$ docker logs second_docker hello world hello world hello world
跟踪日志
$ docker logs -f second_docker
我们也可以跟踪容器日志的某一片段,和之前类似,只需要在tail命令后加入-f –lines标记即可,例如获取日志最后10行的内容
$ docker logs --tail 10 second_docker
跟踪容器的最新日志而不读取整个日志文件
$ docker logs --tail 0 -f second_docker
也可以加入-t标记为每条日志增加时间戳
$ docker logs -ft second_docker
- 查看容器内的进程
$ docker top second_docker
- 在容器内部运行进程
$ docker exec -d second_docker touch /etc/demofile $ docker exec -t -i second_docker /bin/bash
-d表示在后台运行,-t创建一个TTY,-i捕捉STDIN
- 停止和删除容器
$ docker stop second_docker $ docker stop $ID //stop可以替换成kill $ docker rm second_docker $ docker rm $ID $ docker rm 'docker ps -a -q' //删除所有容器
- 自动重启容器
$ docker run --restart=always --name third_docker centos /bin/bash
–restart标志会检查容器的退出代码,并根据此来决定是否要重启容器。默认Docker不会重启。此处标记 –restart=always,无论容器的退出代码是什么,Docker都会自动重启该容器,除了always,我们还可以将这个标记设置为on- failure,这样,只有当容器退出代码为非0值得时候,才会自动重启,另外,on-failure还接受一个可选的重启次数参数,如
$ --restart=on-faulure:5
- 深入容器
$ docker inspect third_docker $ docker inspect --format='{{.State.Running}}' third_docker $ docker inspect --format='{{.NetworkSetting.IPAddress}}' \ first_docker second_docker third_docker
–format或者-f标记远非看上去那么简单,该标记实际上支持完整的Go语言模板。 除了查看容器,你还可以通过浏览本地/var/lib/docker目录来深入了解Docker工作原理,该目录存放着Docker镜像,容器以及容器配置,所有的容器都保存在/var/lib/docker/containers目录下。
分类: Docker
0 条评论