要查看所有可用操作,直接输入docker
或 docker help
即可;要查看某个子命令的详细用法,输入docker help COMMMAND
或docker COMMMAND --help
。
1 容器相关操作
运行一个容器
用法: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用参数:
run子命令是一个非常重要及常用的命令,它有非常多的选项参数,以下列出一些最常使用的:
-d, --detach
后台模式运行一个容器,并打印出容器的ID。
-i, --interactive
交互模式,保持标准输出为打开,即使没有被附加。
--link value
添加指向其他容器的链接,默认为[]。
--name string
给容器分配一个自定义名称(必须唯一)。如果不指定,Docker将随机分配一个名称。
--network string
连接到指定的网络(默认”default”)
-p, --publish value
将容器中的指定端口映射到主机。
-P, --publish-all
将容器中所有暴露的端口随机映射到主机。
--rm
容器运行结束后自动删除容器。
-t, --tty
分配一个伪终端
-v, --volume value
挂载一个卷,(默认 [])。
示例:
交互模式运行一个容器:
$ docker run -it ubuntu:14.04 /bin/bash
- 1
启动容器
用法: docker start [OPTIONS] CONTAINER [CONTAINER...]
示例:
$ docker start myfirstcontainer
- 1
停止容器
用法: docker stop [OPTIONS] CONTAINER [CONTAINER...]
示例:
$ docker stop myfirstcontainer
- 1
重启容器
用法: docker restart [OPTIONS] CONTAINER [CONTAINER...]
示例:
$ docker restart myfirstcontainer
- 1
与运行中的容器进行交互
用法: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
常用参数:
-i, --interactive
交互模式,保持标准输出为打开,即使没有被附加。
-t, --tty
分配一个伪终端
示例:
$ docker exec -it myfirstcontainer /bin/bash
- 1
查看容器IP
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name
- 1
查看容器日志
用法: docker logs [OPTIONS] CONTAINER
常用参数:
-f, --follow
实时查看容器的日志输出,类似于Linux下的tail -f
命令
查看容器端口映射情况
显示容器中所有或指定端口的映射。
用法: docker port CONTAINER [PRIVATE_PORT[/PROTO]]
示例:
# 所有端口
$ docker port mynginx
80/tcp -> 0.0.0.0:8088
- 1
- 2
- 3
# 指定端口
$ docker port mynginx 80
0.0.0.0:8088
- 1
- 2
- 3
查看容器进程
用法: docker top CONTAINER [ps OPTIONS]
示例:
$ docker top mynginx
PID USER TIME COMMAND
2034 root 0:00 nginx: master process nginx -g daemon off;
2049 104 0:00 nginx: worker process
- 1
- 2
- 3
- 4
容器重命名
用法: docker rename OLD_NAME NEW_NAME
列出容器
用法: docker ps [OPTIONS]
常用参数:
-a, --all
显示所有容器(默认只显示运行中的容器)
-n, --last int
显示最后运行的n个容器(包括所有状态,默认-1)
-l, --latest
显示最新创建的一个容器,包括所有状态
示例:
# 显示所有容器
$ docker ps -a
- 1
- 2
删除容器
容器在删除前一般要先停止,否则需要指定-f
参数。
用法: docker rm [OPTIONS] CONTAINER [CONTAINER...]
常用参数:
-f, --force
强制删除运行中的容器
-l, --link
删除指定的链接
-v, --volumes
删除容器关联的卷
示例:
$ docker rm myfirstcontainer
- 1
2 镜像相关操作
从Docker Hub查找镜像
用法: docker search [OPTIONS] TERM
常用参数:
--limit int
搜索结果最大数,默认25个。
示例:
# 查找mysql镜像
$ docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relati... 2858 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Crea... 188 [OK]
centurylink/mysql Image containing mysql. Optimized to be li... 46 [OK]
sameersbn/mysql 36 [OK]
...
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
拉取镜像(或仓库):
用法: docker pull [OPTIONS] NAME[:TAG|@DIGEST]
示例:
$ docker pull ubuntu:16.04
- 1
如果不指定镜像的版本(tag或digest),默认拉取的是最新的(latest)。
注:在拉取一个镜像时,请总是指定一个明确的版本,这样能确保在接下来的使用中,明确知道使用的是哪个版本。因为latest版本总是指向最新的版本,这将造成不确定性。
列出镜像:
用法: docker images [OPTIONS] [REPOSITORY[:TAG]]
示例:
# 列出所有镜像
$ docker images
- 1
- 2
构建一个镜像(Dockerfile)
构建镜像需要创建Dockerfile文件。
用法: docker build [OPTIONS] PATH | URL | -
常用参数:
-t, --tag value
以name:tag
格式命名并指定标签,默认 [].
-f, --file string
Dockerfile的路径(全名,绝对路径或相对路径)
示例:
在当前目录下构建一个tomcat7镜像,注意结尾处的点号不要省略(.):
$ docker build -t org/tomcat:7 .
- 1
构建一个镜像(commit)
从现有容器构建一个新镜像。
用法: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
常用参数:
-a, --author string
指定镜像作者
-m, --message string
提交信息(说明)
示例:
$ docker commit -m "modified timezone" -a "iquelea001" 09e03d3d42ad iquelea001/ubuntu:16.04
- 1
给镜像打标签
用法: docker tag IMAGE[:TAG] IMAGE[:TAG]
示例:
$ docker tag ubuntu:16.04 example.com/ubuntu:16.04
- 1
推送镜像
推送镜像或仓库到仓库服务器。
用法: docker push [OPTIONS] NAME[:TAG]
示例:
$ docker push example.com/ubuntu:16.04
- 1
保存镜像到tar归档(默认到STDOUT)
用法: docker save [OPTIONS] IMAGE [IMAGE...]
常用参数:
-o, --output string
保存到一个归档文件,而不是标准输出(STDOUT)
示例:
$ docker save ubuntu:16.04 > /tmp/ubuntu_16.04_img.tar.gz
- 1
从tar归档或STDIN加载镜像
用法::docker load [OPTIONS]
常用参数:
-i, --input string
从归档文件加载,而不是标准输入(STDIN)
示例:
$ docker load < /tmp/ubuntu_16.04_img.tar.gz
- 1
删除镜像
用法: docker rmi [OPTIONS] IMAGE [IMAGE...]
常用参数:
-f, --force
强制删除镜像
示例:
$ docker rmi org/tomcat:6
- 1
导出镜像
用法: docker export [OPTIONS] CONTAINER
常用参数:
-o, --output string
导出到一个归档文件,而不是标准输出(STDOUT)
注:
export
与save
的区别:
- export: 操作对象为容器,意指将当前容器导出为镜像保存。
- save : 操作对象为镜像,意指将指定的镜像保存到另一个文件。如从台机器导出镜像,然后在另一台机器(网络较慢等)加载该镜像,这时应该使用
save
和load
来迁移。
示例:
$ docker export 09e03d3d42ad > /tmp/ubuntu_16.04_expimg.tar.gz
- 1
导入镜像
用法: docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
常用参数:
-m, --message string
提交信息(说明)
示例:
$ docker import -m "myfirstimg" < /tmp/ubuntu_16.04_expimg.tar.gz
- 1
3 系统相关操作
显示系统范围的信息
用法: docker info
示例:
$ docker info
Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 3
Server Version: 1.12.0
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 15
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: null bridge host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.4.15-moby
Operating System: Alpine Linux v3.4
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.954 GiB
Name: moby
ID: WNLK:ZI7D:TVSE:LPIN:YR23:LD6M:G2XC:63QQ:4WLX:HIIP:CUZ5:RKU4
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
File Descriptors: 18
Goroutines: 29
System Time: 2016-08-15T04:53:02.555086576Z
EventsListeners: 1
No Proxy: *.local, 169.254/16
Registry: https://index.docker.io/v1/
Insecure Registries:
127.0.0.0/8
- 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
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
查看docker组件底层信息
可以查看容器,镜像,任务等的底层信息。
用法: docker inspect [OPTIONS] CONTAINER|IMAGE|TASK [CONTAINER|IMAGE|TASK...]
示例:
docker inspect ubuntu:16.04
[
{
"Id": "sha256:42118e3df429f09ca581a9deb3df274601930e428e452f7e4e9f1833c56a100a",
"RepoTags": [
"ubuntu:16.04"
],
"RepoDigests": [
"ubuntu@sha256:c6674c44c6439673bf56536c1a15916639c47ea04c3d6296c5df938add67b54b"
],
"Parent": "",
"Comment": "",
"Created": "2016-07-22T15:19:31.961254889Z",
"Container": "18623e507b31713ccb54bb249bd40a3a9f0acfe50ca1a6615729ea983b6a8011",
"ContainerConfig": {
"Hostname": "827f45722fd6",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
...
- 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
卷管理
用法::docker volume COMMAND
子命令:
create
创建一个卷
常用参数:
--name string
指定卷的名称
-d, --driver string
指定卷的驱动名称 (默认 “local”)
inspect
显示一个或多个卷的详细信息 ls
显示卷(别名:ls,list) rm
删除卷(别名:rm, remove) 网络管理
用法::docker network COMMAND
子命令:
connect
将容器连接到指定的网络
用法: docker network connect [OPTIONS] NETWORK CONTAINER
常用参数:
--alias value
该网络范围内的容器别名(默认 [])
--ip string
IP地址
--ip6 string
IPv6地址
--link value
连接到其他容器(默认 [])
create
创建一个网络 用法: docker network create [OPTIONS] NETWORK
常用参数:
-d, --driver string
网络驱动,可选值:“bridge”,“overlay”,mac下还有“macvlan”,默认“bridge”.
disconnect
将容器从指定网络断开 用法:
docker network disconnect [OPTIONS] NETWORK CONTAINER
常用参数:
-f, --force
强制容器从一个网络断开
inspect
显示一个或多个网络的详细信息 用法:
docker network inspect [OPTIONS] NETWORK [NETWORK...]
ls
显示所有网络(别名:ls,list) rm
删除一个网络(别名:rm, remove)