1.查看docker程序是否存在,功能是否正常
docker info
2. docker run
docker run命令提供了Docker容器的创建到启动的功能。
例:docker run -i -t ubuntu /bin/bash
分析:
首先,我们告诉Docker执行docker run命令,并指定了-i和-t两个命令行参数。-i标志保证容器中STDIN(标准输入,standard in)是开启的,以交互模式运行容器,通常与-t同时使用。-t告诉Docker要为创建的容器分配一个伪tty终端。这样新容器才能提供一个交互式shell。如果我们要创建一个交互式容器,而不是一个运行在后台服务的容器,则这两个参数是最基本的参数。
接下来我们告诉docker基于什么镜像来创建容器,示例中使用的是ubuntu镜像。在执行docker run ubuntu时,Docker会检查本地是否存在ubuntu镜像,如果本地还没有该镜像的话,那么docker会链接官方维护的Docker Hub Registry,查看Docker Hub中是否有该镜像,一旦找到该镜像,则会下载该镜像将其保存到本地宿主机中。
随后,Docker在文件系统内部用这个镜像创建一个新容器。该容器拥有自己的网络,ip地址,以及一个用来和宿主机进行通信的桥接网络结构。
最后,我们告诉Docker在容器中要运行什么命令,本例中我们在容器中运行/bin/bash命令启动了一个Bash shell。
附录:
docker run其他命令行参数及意义:https://www.runoob.com/docker/docker-run-command.html
3.容器命名
Docker会为我们创建的每一个容器自动生成一个随机的名称,如果想为容器指定一个名称而不是使用自动生成的,则可以使用--name标志来实现
docker run --name bob_the_container -i -t ubuntu /bin/bash
合法的容器名称规则:小写字母a-z,大写字母A-Z,数字0-9,下划线,圆点,横线。 正则表达式: [a-zA-Z0-9_·-]
4.重新启动已经停止的容器
1.通过容器名称启动
docker start bob_the_container
2.通过容器id启动
docker start 066deb7d73ef
3.也可以使用docker restart命令来重启一个容器
5.查看当前系统的容器列表
docker ps
使用docker ps时,可以查看正在运行的容器,如果想查看所有容器包括已经停止的,可以加-a标志
6.创建守护式容器
除了交互式运行的容器,也可以创建长期运行的容器。守护式容器没有交互式会话,非常适合运行应用程序和服务。大多数时候我们都需要以守护式来运行我们的容器。
docker run --name daemon_dave -d ubuntu
7.日志查看
我们已经有了一个在后台运行的守护型容器,但是容器内部都发生了什么,我们可以使用docker logs来获取容器的日志
docker logs 容器名称/id
docker logs -f 容器名称/id
8.查看容器内的进程
docker top 容器名称/id
9.Docker统计信息
除了docker top,还可以使用docker stats命令来显示一个或多个容器的统计信息
我们可以看到一个容器的列表,以及它们的CPU,内存,网络io及存储io的性能和指标。这对快速监控一台主机的一组容器非常有用
10.在容器内部运行进程
在Docker1.3之后,也可以通过docker exec命令在容器内部额外启动新进程。可以在容器内运行的进程有两种类型:后台任务和交互式任务。后台任务在容器内运行且没有需求交互,而交互式任务则保持在前台运行。
- 在容器中运行后台任务
例:
docker exec -d 容器名称 touch /etc/test_file
这里的-d标志表明需要运行一个后台进程,-d标志之后,指定的时要在内部执行这个命令的容器的名字以及要执行的命令。本例会在容器内创建一个孔文件,文件名为new_config_file
- 在容器中运行交互式命令
例:
docker exec -t -i 容器名称 /bin/bash
和运行交互式容器一样,-t和-i标志为我们执行的进程创建了tty并捕捉STDIN,接着我们指定了要在内部执行这条命令的容器名字和要执行的命令。在本例中,这条命令会在容器内创建一个新的bash会话,有了这个会话,我们就可以在改容器内部执行其他命令了
11.停止容器
docker stop 容器名称/id
12.自动重启容器
如果由于某种错误而导致容器停止运行,可以通过--restart标志,让Docker自动重新启动该容器。--restart标志会检查容器的退出代码,并据此来决定是否需要重启。默认的行为时Docker不会重启容器。
例:
docker run --restart=always --name deamon_dave -d ubuntu /bin/sh
本例中,--restart标志被设为always,无论容器的退出代码是什么,Docker都会自动重启该容器。除了always,还可以设置为on-failure,这样,只有当容器的退出代码为非0的时候才会自动重启。另外,on-failure还接受一个可选的重启次数参数,--restart=on-failure:5
这样,当容器的退出代码为非0时,Docker尝试自动重启该容器,最多重启5次
13.深入容器
除了docker ps命令湖区容器的信息,还可以使用docker inspect来获得更多的容器信息。docker inspect命令会对容器进行详细的检查,然后返回其配置信息,包括名称,网络配置及很多有用的数据。也可以用-f或者--format标志来选定查看结果。
14.删除容器
如果容器已经不再使用,可以使用docker rm命令来删除它们。
docker rm 容器名称/id
如果容器正在运行,docker rm并不能直接删除容器,必须先使用docker stop或docker kill命令停止容器,才能将其删除。但从Docker 1.6.2开始,可以通过给docker rm命令传递-f标志来删除运行中的docker容器。