Docker语法说明
docker [OPTIONS] COMMAND [arg...] OPTIONS --config=~/.docker :指定本地客户端配置文件。 -D, --debug :开启调试模式。 -H, --host=[] :指定监听连接地址。 -h, --help :打印使用方式。 -l, --log-level=info :设置日志级别。 --tls :开启tls。 --tlscacert=~/.docker/ca.pem :信任的CA证书。 --tlscert=~/.docker/cert.pem :证书文件路径。 --tlskey=~/.docker/key.pem :key文件路径。 --tlsverify
COMMAND
attach
当前shell下attach连接指定运行镜像,退出容器时,容器关闭。
create
创建一个新的容器,同run,但不启动容器,状态为Created,通过docker ps -a可以查看。
$ docker create --name test_1_nginx nginx
run
创建一个新的容器并运行一个命令,具体官方参考。
$ docker run --name test_nginx -d nginx -c :设置CPU使用权重。 -m, --memory="" : 内存限制 (format: <number><optional unit>, where unit = b, k, m or g) 。 --cidfile="" :把容器id写入到指定文件。 --cpuset="" :cpu绑定。 -d :后台运行容器。 --dns :设置dns。 --init :该选项在容器内运行带有PID 1的init进程,它转发信号并收集进程。 --dns-search :设置dns域搜索。 --env-file :从指定文件读取变量值。 --expose :指定对外提供服务端口。 -h :设置容器主机名。 -i, --interactive :保持标准输出开启即使没有attached。 --link :添加链接到另外一个容器。 --name :设置容器名。 --net :设置容器网络模式。 -P, --publish-all :自动映射容器对外提供服务的端口。 -p, --publish :指定端口映射(format: ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort) --privileged :提供更多的权限给容器。 --rm :如果容器退出自动移除。 --restart :该选项定义容器的重新启动策略,设置为always时表示确保Docker守护程序在启动时启动容器,并在容器退出时重新启动它。 --security-opt :安全选项,通过–security-opt选项,运行容器时用户可自定义SELinux和AppArmor卷标和配置。 -t, --tty :分配伪终端。 -u, --user :指定运行容器的用户uid或者用户名。 -v, --volume :挂载卷(from the host:-v /host:/container, from docker: -v /container) --volumes-from :从指定容器挂载卷。 -w, --workdir :指定容器工作目录。
# 创建一个cpu优先级为100,内存限制512MB,主机名为test1,名为docker_test后台运行bash的容器;
$ docker run -t -i -c 100 -m 512MB -h test -d --name="docker_test" ubuntu /bin/bash
ps
列出容器列表。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ddc9ae8793dc nginx "nginx -g 'daemon off" 4 hours ago Up 4 hours 443/tcp, 0.0.0.0:8081->80/tcp docker_nginx
cp
从容器中拷贝指定文件或者目录到宿主机中。
$ docker cp test_nginx:/etc/sysctl.conf /tmp/
diff
查看docker容器变化。
$ docker diff test_nginx
events
从docker服务获取容器实时事件。
exec
在已存在的容器上运行命令。
$ docker exec -ti test_nginx /bin/bash
export
导出容器的内容流作为一个tar归档文件[对应import]。
import
从tar包中的内容创建一个新的文件系统映像[对应export]。
history
展示一个镜像形成历史。
$ docker history docker_nginx
images
显示当前系统镜像。
# 显示当前系统镜像,不包括过渡层镜像;
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE wordpress latest 368db5c51bcd 4 days ago 420 MB nginx latest e43d811ce2f4 4 days ago 181.4 MB mysql latest cf725f136fd2 4 days ago 383.4 MB ubuntu latest f753707788c5 12 days ago 127.1 MB
# 显示当前系统所有镜像,包括过渡层镜像;
$ docker images -a
info
显示系统相关信息。
$ docker info Containers: 6 Running: 5 Paused: 0 Stopped: 1 Images: 4 Server Version: 1.12.2
inspect
查看容器详细信息。
# 查看完整容器信息;
$ docker inspect test_nginx
# 查看指定容器信息;
$ docker inspect -f '{{.Id}}' test_nginx
kill
kill指定docker容器。
$ docker kill docker_wordpress
save
保存一个镜像为一个tar包[对应load]。
$ docker save -o nginx.tar.gz nginx
load
从一个tar包中加载一个镜像[对应save]。
$ docker load -i nginx.tar.gz Loaded image: nginx:latest
login
注册或者登陆一个docker registry服务器。
$ docker login 172.17.0.1:5000 -u hello -p world
logout
从当前docker registry退出。
$ docker logout 172.17.0.1:5000
logs
输出当前容器日志信息。
# 输出指定容器的所有日志;
$ docker logs docker_nginx
# -f选项可以像tailf一样输出日志;
$ docker logs docker_nginx -f
port
查看映射端口对应的容器内部源端口。
$ docker port docker_nginx 80/tcp -> 0.0.0.0:8081
pull
从docker镜像源服务器拉取指定镜像或者库镜像。
# 从默认Registry进行PULL镜像;
$ docker pull mysql
# 从指定Registry进行PULL镜像;
$ docker pull 172.17.0.1:5000/mysql
push
推送指定镜像或者库镜像到私有源[可注册docker官方账户,推送到官方自有账户]。
$ docker push 172.17.0.1:5000/ubuntu
rename
重命名容器。
$ docker rename docker_wordpress wordpress
pause
暂停容器,状态为Paused。
$ docker pause docker_nginx
unpause
取消暂停容器,状态为Up。
$ docker unpause docker_nginx
stop
停止容器,状态为Exited。
$ docker stop docker_nginx
start
启动容器,状态为Up。
$ docker start docker_nginx
restart
重启运行的容器。
$ docker restart docker_nginx
rm
删除一个或者多个容器,一般使用都要加上-fv选项,表示把对应的volume也删除。
$ docker rm -fv test_nginx
rmi
移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或-f强制删除]。
$ docker rmi hello-world
service
管理Docker服务。
search
在docker hub中搜索镜像。
$ docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relati... 3276 [OK]
# 搜索Docker HUP中star超过100的镜像;
$ docker search -s 100 ubuntu
stats
显示一个存活容器的资源使用情况。
$ docker stats docker_nginx CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS docker_nginx 0.00% 7.582 MiB / 7.64 GiB 0.10% 2.248 kB / 3.748 kB 6.848 MB / 0 B 0
tag
给源中镜像打标签,通过docker images查看。
$ docker tag nginx test_nginx
top
查看容器中运行的进程信息。
docker top test_nginx UID PID PPID C STIME TTY TIME CMD root 2747 2732 0 18:30 ? 00:00:00 nginx: master process nginx -g daemon off; 104 2766 2747 0 18:30 ? 00:00:00 nginx: worker process
update
给一个或多个容器更新配置。
version
查看docker版本号。
$ docker version Client: Version: 1.12.2 API version: 1.24 Go version: go1.6.3 Git commit: bb80604 Built: OS/Arch: linux/amd64 Server: Version: 1.12.2 API version: 1.24 Go version: go1.6.3 Git commit: bb80604 Built: OS/Arch: linux/amd64
network
管理Docker网络。
swarm
管理Docker Swarm。
node
管理DockerSwarm节点。
volume
管理Docker卷。
$ docker volume ls
build
通过Dockerfile定制镜像,详情看:Docker:使用Dockerfile构建Nginx镜像。
$ docker build -t test .
commit
提交当前容器为新的镜像,对一个正在运行的容器进行了配置修改后,可将此容器提交为一个新的容器。Docker:使用Dockerfile构建Nginx镜像。
$ docker commit -a pengdongwen nginx_01 nginx_10