Docker学习2---常用命令
2016-05-18 10:20 Qin奋 阅读(159) 评论(0) 收藏 举报1.docker info
返回所有容器,镜像的数量。以及Docker基本信息。
2. sudo docker run -i -t ubuntu /bin/bash
-i 是打开STDIN 标准输入。 -t 告诉Docker为要创建的容器分配一个伪tty终端。 -it 这样新创建的容器才能提供一个交互式shell。
ubuntu是告诉Docker基于什么镜像来创建容器。上面使用的ubuntu镜像是一个常备镜像,也可以称为 基础镜像--base image.由Docker公司提供,保存在Docker Hub Registry上。
该命令运行的逻辑:
2.1 首先检查本地是否存在ubuntu镜像。若无,则会从官方维护的Docker Hub Registry查看是否有该镜像, 并下载保存到本地宿主机中。
2.2 随后,Docker在文件系统内部用这个镜像创建了一个新容器。该容器拥有自己的网络,IP地址,以及一个用来和宿主机进行通信的交接网络接口。
2.3 最后,我们告诉Docker在新容器中要运行什么命令。本例中我们在容器中运行了 /bin/bash, 启动了一个Bash shell.
2.4 当容器创建完毕之后,Docker就会执行容器中的/bin/bash. 这时我们就能看到容器内的shell了。
(即使没有2.4这个参数,容器也能创建成功,但是创建完以后不会自动打开与容器交互的shell)
3. docker ps
显示所有正在运行的容器
-a 显示所有容器,包括正在运行的和停止的
-al 显示最后一次运行的容器
4. sudo docker run --name containner_name -i -t ubuntu /bin/bash
创建容器的时候显示命名容器名称(容器名称不能重复), 否则容器会被随机分配一个名称。如:
5. docker rm container_name/container ID
根据容器名称或者容器ID删除容器
docker rm 'docker ps -a -q' 删除所有容器。-a 列出所有容器, -q只返回容器ID
6. docker rmi image id
根据镜像ID删除镜像
7. docker start container ID/ container name
根据容器ID/容器名称 启动容器
8. docker stop container ID/ container name
根据容器ID/容器名称 停止容器(这个命令会向容器发送 SIGTERM信号,如果想快速停止容器,可以使用docker kill命令向容器发送SIGKILL信号)
9. docker attach container ID/ container name
容器start后, 会沿用创建容器 docker run ....... 命令时的参数来运行(拿命令4举例,也就是说 docker start hungry_elison 的时候, 容器的“/bin/bash”已经运行了)
我们只需要附着到上面就可以了。 这就是附着命令。如果退出容器的shell, 容器也会随之停止。
10.docker exec -it container ID/ container name bash
这是进入容器的另外一个方法
11. docker run --name daemon_dave -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
我们在上面的docker run命令使用了 -d参数, 因此Docker会将容器放到后台运行。我们还在容器要运行的命令里使用了一个while循环,该循环会一直打印 helloworld知道容器或进程结束
12. docker logs contaner name
查看容器的日志
-f 监控容器日志 类似于 tail -f
-ft 监控容器日志并加上时间戳
docker logs --tail 10 daemon_dave 获取日志最后10行内容
docker logs --tail 0 -f daemon_dave 跟踪某个容器的最新日志二不必读取整个日志文件
13.docker top container name/ container ID
查看容器内的所有进程
14.docker exec -d container_name touch /etc/new_file
docker exec 命令是Docker 1.3以后才出。可以在容器内部额外启动新程序(从宿主机shell),可以在容器内部运行的进程有两种类型:
后台任务和交互式任务。该命令就是启动一个后台任务
15.docker exec -t -i contaner_name /bin/bash
启动容器的bash进程(这个进入的容器的bash和 docker attach 依附到容器的shell不一样的是 从这个bash shell exit不会停止容器,而后者会)
16.docker run --restart=always --name daemon_dave -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
在创建容器的时候,可以设置容器的重启机制。--restart 参数会让Docker检查容器退出的代码,一次来判断是否要重启。 --restart=always
表示无论退出码是什么都重启。 --restart=on-failure:5 表示退出码为非0时才重启,5为重启次数。 这个机制是Docker1.2.0引进来的。
17. docker inspect container_name
对容器进行详细检查,然后返回其配置信息,包括名称,网络配置等很多有用的信息
--format='{{ .State.Running }}' 选定查看结果
18. /var/lib/docker
该目录存放着Docker镜像,容器以及容器的配置。所有的容器都保存在/var/lib/docker/containers 目录下
浙公网安备 33010602011771号