Dcoker:命令使用详解

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

  

posted @ 2018-04-09 11:25  Gringer  阅读(1108)  评论(0)    收藏  举报