Docker 命令操作手册,方便查询使用。

运行

docker run

–name 指定容器名
-p 指定端口映射

-v 挂载数据卷或者本地目录映射 :ro 挂载为只读
-d 后台持续运行
-i 交互式操作
-t 终端
-rm 容器退出后随之将其删除(与-d 冲突)

eg:

1
2
3
4
docker run --name ghost1 -p 80:2368 -v /c/Dev/server/blogtest2:/var/lib/ghost ghost
docker run -it --rm ubuntu:14.04 bash
docker run ubuntu:14.04 /bin/echo 'Hello world'
docker run --name webserver -d -p 80:80 nginx

管理容器

1
2
3
4
5
6
7
8
9
10
11
docker ps 列出正在运行的容器
docker kill $(docker ps -q) 停止所有正在运行的容器
docker ps -a 查看所有容器,包括运行和停止的
docker start 启动一个已有容器
docker stop 终止一个运行中的容器
docker restart 重启某个容器
docker rm xxxx 删除容器 -f 删除运行中的
docker rm $(docker ps -a -q) 删除所有终止的容器
docker logs [container id or names] 获取输出log -f 实时打印日志
docker diff 容器名 查看我们定制以及修改
docker volume ls 列出所有本机的数据卷

管理镜像

1
2
3
4
5
6
7
8
9
docker pull [option] [url] 获取镜像, 例如: docker pull ubuntu:14.04
docker images 列出本地镜像
docker build -t nginx:v3 . 在当前目录构建镜像,-t 是指定镜像名称 tag
docker rmi xxxxxx 删除本地镜像
docker commit 选项 容器名/id 仓库名 tag :可以把修改定制过的容器保存为镜像
docker images -f dangling=true 列出所有虚悬镜像(dangling image)
docker rmi $(docker images -q -f dangling=true) 删除所有虚悬镜像
docker histroy 镜像名:标签 查看镜像修改的历史纪录

查询单个容器详细信息

可以看到容器的完整ID、运行状态、网络设置、镜像等信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[root@VM_25_5_centos ~]# docker inspect splash
[
{
"Id": "b5a387e5f9064113e48c06384be045675e12047c7ef5564f76ae8bf0c7f95304",
"Created": "2017-04-05T04:49:40.025249222Z",
"Path": "python3",
....
"State": {
"Status": "running",
"Running": true,
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "b3063867b30c820bb92ee198edad8d5cb8974135d0490e956d3646364ccca711",
"EndpointID": "979a8d0bbfde532c45dfbf97bab3c2d874100b4ca448a460b81904709260eb3b",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:03"
}
}
}
}
]

查询日志

1
2
[root@VM_25_5_centos ~]# docker logs splash
2017-04-10 12:32:49.050352 [-] "101.226.66.173" - - [10/Apr/2017:12:32:48 +0000] "GET /4e5e5d7364f443e28fbf0d3ae744a59a HTTP/1.1" 404 153 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36"

实时打印日志

加上-f参数

1
2
[root@VM_25_5_centos ~]# docker logs -f splash
2017-04-10 12:32:49.050352 [-] "101.226.66.173" - - [10/Apr/2017:12:32:48 +0000] "GET /4e5e5d7364f443e28fbf0d3ae744a59a HTTP/1.1" 404 153 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36"

查看容器所占用的系统资源

如CPU使用率、内存、网络和磁盘开销。

1
2
3
4
[root@VM_25_5_centos ~]# docker stats splash
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
splash 0.04% 230.5 MiB / 7.64 GiB 2.95% 50.7 MB / 33.77 MB 547.9 MB / 131.1 kB 7

查看容器使用了哪些进程

1
2
3
4
5
[root@VM_25_5_centos ~]# docker exec api1 ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 125480 25136 ? Ss+ Mar31 0:00 python ./manage.py runserver 0.0.0.0:8000
root 6 0.9 0.8 747960 64664 ? Sl+ Mar31 139:37 /usr/local/bin/python ./manage.py runserver 0.0.0.0:8000
root 886 0.0 0.0 19180 1300 ? Rs 16:56 0:00 ps aux

转移Docker的数据目录到大的磁盘分区上

1
2
3
4
5
service docker stop
mkdir /data/dockerData/
mv /var/lib/docker /data/dockerData/
ln -s /data/dockerData/docker /var/lib/docker
service docker start

centos7 安装docker

1
2
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum -y install docker-io

可通过以下命令启动 Docker 服务:

1
2
service docker start
chkconfig docker on # 设置开机启动

可使用以下命令,查看 Docker 是否安装成功:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@localhost ~]# docker version
Client:
Version: 1.12.6
API version: 1.24
Package version: docker-1.12.6-32.git88a4867.el7.centos.x86_64
Go version: go1.7.4
Git commit: 88a4867/1.12.6
Built: Mon Jul 3 16:02:02 2017
OS/Arch: linux/amd64
Server:
Version: 1.12.6
API version: 1.24
Package version: docker-1.12.6-32.git88a4867.el7.centos.x86_64
Go version: go1.7.4
Git commit: 88a4867/1.12.6
Built: Mon Jul 3 16:02:02 2017
OS/Arch: linux/amd64

centos7 卸载docker

1
2
3
4
5
6
7
8
9
[root@localhost ~]# yum list installed | grep docker
docker.x86_64 2:1.12.6-28.git1398f24.el7.centos
docker.x86_64 2:1.12.6-32.git88a4867.el7.centos
docker-client.x86_64 2:1.12.6-28.git1398f24.el7.centos
docker-client.x86_64 2:1.12.6-32.git88a4867.el7.centos
docker-common.x86_64 2:1.12.6-28.git1398f24.el7.centos
docker-common.x86_64 2:1.12.6-32.git88a4867.el7.centos
[root@localhost ~]# yum -y remove docker.x86_64
[root@localhost ~]# yum -y remove docker-common.x86_64

docker网络

命令

1
2
3
4
5
6
docker network create
docker network connect
docker network ls
docker network rm
docker network disconnect
docker network inspect

参考:Docker network命令详解