学习使用 Docker 客户端
语法:
# Usage: [sudo] docker [subcommand] [flags] [arguments] ..
# Example:
$ docker run -i -t ubuntu /bin/bash
通过 docker version
命令可以查看 Docker 服务器、客户端 及 GO 语言的版本信息。
$ docker version
Client:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 05:33:38 2016
OS/Arch: linux/amd64
Server:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 05:33:38 2016
OS/Arch: linux/amd64
获取 Docker 命令的帮助信息
列出所有的命令:
$ docker --help
要查看指定子命令的帮助信息,例如:
$ docker attach --help
Usage: docker attach [OPTIONS] CONTAINER
Attach to a running container
--help Print usage
--no-stdin Do not attach stdin
--sig-proxy=true Proxy all received signals to the process
在 Docker 中运行一个 Web 应用
$ docker run -d -P training/webapp python app.py
-d
选项使 Docker 在后台运行-P
选项将 Docker 内的 5000 端口映射到主机的某个随机端口training/webapp
是 Docker Hub 上的一个测试 Flask Web Apppython app.py
指定在容器中启动 Web App
查看我们的 Web 应用容器
$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bc533791f3f5 training/webapp:latest python app.py 5 seconds ago Up 2 seconds 0.0.0.0:49155->5000/tcp nostalgic_morse
-l
即 last - 列出最近启动的容器信息
查看上面的端口信息:
PORTS
0.0.0.0:49155->5000/tcp
由于使用了 -P
选项,从而使得容器内的 5000 端口映射到了主机的 49155 端口。-P
选项是 -p 5000
选项的简写,它实现将容器内的 5000 端口映射到主机的一个高位端口(从 32768 到 61000)。当然,通过 -p
选项也可以指定要映射的主机端口号,比如要将容器内的 5000 端口映射到主机的 80 端口:
$ docker run -d -p 80:5000 training/webapp python app.py
查看端口映射信息
通过 docker ps
查看比较麻烦,可以通过 docker port container_name in_container_port
进行:
$ docker port nostalgic_morse 5000
0.0.0.0:49155
查看 Web 应用的日志
$ docker logs -f nostalgic_morse
* Running on http://0.0.0.0:5000/
10.0.2.2 - - [23/May/2014 20:16:31] "GET / HTTP/1.1" 200 -
10.0.2.2 - - [23/May/2014 20:16:31] "GET /favicon.ico HTTP/1.1" 404 -
-f
选项使得可以像tail -f
命令一样看到容器标准输出上的内容。
列出容器中的进程
$ docker top nostalgic_morse
PID USER COMMAND
854 root python app.py
查看容器的详细信息
通过 docker inspect
可以查看容器的配置及状态等详细信息,并以 JSON 格式返回。
$ docker inspect nostalgic_morse
[{
"ID": "bc533791f3f500b280a9626688bc79e342e3ea0d528efe3a86a51ecb28ea20",
"Created": "2014-05-26T05:52:40.808952951Z",
"Path": "python",
"Args": [
"app.py"
],
"Config": {
"Hostname": "bc533791f3f5",
"Domainname": "",
"User": "",
. . .
还可以指定要返回的信息项:
$ docker inspect -f '' nostalgic_morse
172.17.0.5
关闭容器
$ docker stop nostalgic_morse
nostalgic_morse
重启容器
刚关闭后,还可以重新启动。
$ docker start nostalgic_morse
nostalgic_morse
要先关闭再启动,可以用 docker restart container_name
。
删除容器
容器没有关闭时不能删除:
$ docker rm nostalgic_morse
Error: Impossible to remove a running container, please stop it first or use -f
2014/05/24 08:12:56 Error: failed to remove one or more containers
What happened? We can’t actually remove a running container. This protects you from accidentally removing a running container you might need. You can try this again by stopping the container first.
$ docker stop nostalgic_morse
nostalgic_morse
$ docker rm nostalgic_morse
nostalgic_morse