windows 7, docker 1.3.2,当前使用的容器名为aoct,ID为614122c0aabb。docker
能够start + 容器名
shell
$ sudo docker start aoct
或start + 容器ID
ubuntu
$ sudo docker start 614122c0aabb
查看如今正在运行的容器:windows
$ sudo docker ps
还能够用docker restart
重启。bash
Docker容器从新启动时,会沿用docker run
命令指定的参数来运行,因此从新启动后会运行一个交互式会话shell。也能够用docker attach
命令从新附到该容器的会话上:学习
$ sudo docker attach aoct
如今就从新回到容器的巴士提示符。spa
也能够用容器ID:3d
$ sudo docker attach 614122c0aabb
除了这些交互式运行的容器(interactive container),也能够建立长期运行的容器。守护式容器(daemonized container)没有交互式会话,适合运行应用程序和服务。大多数时候是须要以守护式来运行容器。rest
能够经过添加 -d 参数来实现,建立一个叫aofo的容器:日志
sudo docker run --name aofo -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
上面的命令会让容器在后台运行。使用了一个while
循环,改循环会一直打印hello world
,知道容器或其进程中止运行。
与以前建立的容器相比,没有返回shell会话,只是返回了一个容器ID。
查看如今正在运行的容器:
$ sudo docker ps
上面建立了一个在后台运行while
循环的守护型容器,能够用docker logs
查看容器日志:
$ sudo docker logs aofo
能够在命令后使用-f
参数来健康Docker日志,这与tail -f
很是类似:
$ sudo docker logs -f aofo
而后就会看到一直输出hello world。能够经过ctrl+c
来退出监控个。
$ sudo docker top aofo
能够看到容器内的全部进程(主要是while循环)、运行进程的用户、进程ID:
Docker 1.3 以后能够经过docker exec
命令在容器内部额外启动新进程。能够在容器内运行两种进程:后台任务、交互式任务。后台任务在容器内运行且没有交互需求,交互式二年五则保持在前台运行。对于须要早容器内部贷款shell
的任务,用交互式任务.
$ sudo docker exec -d daemon aofo touch /etc/new_config_file
代码解释:-d
标志标明要运行一个后台进程,后面指定要在内部执行这个命令的容器名,我用的是aofo
。整句命令在aofo容器内建立了一个空文件夹new_config_file
。
$ sudo docker exec -t -i aofo /bin/bash
代码解释:
和运行交互容器一一,这里-t
、-i
标志位指明建立TTY并捕捉STDIN。后面指定要在内部执行这个命令的容器名,我用的是aofo
。整句命令在aofo容器内建立新的bash对话,就能够在该容器运行其余命令了。
docker exec
命令是在 Docker 1.3 引入的,以前版本不支持。可用nsenter
命令
docker stop
命令:
$ sudo docker stop aofo
也能够用容器ID只带容器名称:
$ sudo docker stop ddd958443007
若是想快速中止容器,还能够用docker kill
命令:
$ sudo docker kill aofo
能够用docker ps
命令产科当前运行的容器。也能够用docker ps -n x
,该命令会显示最后x个容器,不论这些容器是运行仍是中止的。
$ sudo docker ps -n 2
用docker inspect
获取更多的容器信息:
$ sudo docker inspect aofo
能够用-f
或者--format
标志来选定查看结果。
查看容器运行状态:
$ sudo docker inspect --format='{{ .State.Running }}' aofo
查看容器IP地址:
docker@boot2docker:~$ sudo docker inspect --format='{{ .NetworkSettings.IPAddress }}' aofo
我没有设置,因此返回空:
-f
和--format
标志支持完整的GO语言模板。用它进程查询时,能够重复利用GO语言米板的优点。
能够同时制定多个容器,并显示每一个容器的结果:
$ sudo docker inspect --format='{{ .State.Running }}' aofo aoct
除了查看容器,还能够浏览
/var/lob/docker
目录了解Docker的工做原理,该目录存放着Docker镜像、容器、容器配置。全部容器都保存在/var/lib/docker/containers
目录下。
运行中的容器没法删除,必须先中止。使用docker rm
:
$ sudo docker rm 容器ID
一次性删除全部容器:
$ sudo docker rm `docker ps -a -q`
这不是常规命令,只是小技巧。docker ps
列出全部现有的容器,-a
标志列出全部(all)容器,-q
返回容器ID。这样就获得了容器ID列表,并传给docker rm
命令,从而达到删除全部容器的目的。
【本人的学习笔记,主要是对《个人第一本Docker书》、《Docker —— 从入门到实践》的学习记录,并结合其余各类资源的学习。】