docker run -it centos /bin/bash
为centos这个镜像创建一个容器,-it等同于-i和-t,这两个参数的作用是为该docker创建一个伪终端,这样就可以进入到容器的交互模式。

docker ps -a
查看当前系统中容器的列表,默认情况下,当执行docker ps命令时,只能看到正在运行的容器。如果指定-a标志选项的话,那么docker ps命令会列出所有的容器,包括正在运行的和已经停止的。

docker run --name my_name_container -i -t centos /bin/bash
创建一个名为my_name_container的容器

docker start my_name_container
重新启动已停止的名称为my_name_container的容器

Docker容器重新启动的时候,会沿用docker run命令时指定的参数来运行,因此我们容器重新启动后会运行一个交互式shell。此外,我们也可以用docker attach命令,重新附着到该容器的会话上,如下:
docker attach my_name_container

除了创建交互式运行的容器,我们也可以创建长期运行的容器。守护式容器没有交互式会话,非常适合运行应用程序和服务。
docker run --name daemon_dave -d centos /bin/sh -c "while true; do echo hello world; sleep 1; done"

docker rm my_name_container
删除一个名称为my_name_container的容器

docker logs my_name_container
docker logs --tail 10 -f my_name_container
docker logs --tail 0 -f my_name_container

以上命令用来获取容器的日志或者跟踪容器的日志,和tail -f类似。

docker top daemon_dave
该命令用来查看名称为daemon_dave的容器的内部运行的进程。

docker exec -d daemon_dave touch /etc/new_config_file
-d表示需要运行一个后台进程,-d标志之后,指定的是要在内部执行这个命令的容器的名字以及要执行的命令。上面命令会在daemon_dave容器内创建一个空文件,文件名为/etc/new_config_file。

docker exec -t -i daemon_dave /bin/bash
和运行交互容器时一样,这里的-i和-t标志为我们执行的进程创建了tty并捕捉STDIN。接着我们指定了要在内部执行这个容器的名字以及要执行的命令。上面的命令会在daemon_dave容器内创建一个新的bash会话,有了这个会话,就可以在该容器中运行其它命令了。

docker run --restart=always --name daemon_dave -d centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
本例中,–restart标志被设置为always,无论容器的退出代码是什么,docker都会自动重启该容器。除了always,还可以将这个标志设置为on-failure,这样,只有当容器的退出代码为非0值的时候,才会自动重启。另外,on-failure还接受可选的重启次数参数,如:–restart=on-failure:5

docker images
列出所有的镜像

docker pull centos
该命令会拉取centos仓库中的latest标签内容

可以在仓库名后面加上一个冒号和标签名来指定仓库中的某一镜像,如下所示。
docker run -t -i --name my_docker_container centos:latest /bin/bash
上面命令会从镜像centos:latest启动一个容器。

docker hub中有两种类型的仓库:用户仓库和顶层仓库。用户仓库的镜像都是由docker用户创建的,而顶层仓库则是由docker内部的人来管理的。
用户仓库的命名由用户名和仓库名两部分组成,如jamtur01/puppet。
用户名:jamtur01
仓库名:puppet
与之相对,顶层仓库只包含仓库名部分,如centos仓库。

用docker run命令从镜像启动一个容器时,如果该镜像不在本地,docker会先从docker hub下载该镜像,如果没有指定具体的镜像标签,那么docker会自动下载latest标签的镜像。

docker search ubuntu
该命令会查找docker hub上公共的可用镜像