Docker本身的命令比较多,这里只介绍一些常用的命令
一、Docker操作
info
查看Docker系统信息
docker info
version
查看Docker版本信息
docker version
二、容器操作
2.1 容器生命周期管理
run
创建一个容器并运行
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-d 后台运行容器
-p [host端口]:[容器端口] 容器内端口映射到主机
-v [host目录]:[容器目录] 给容器挂载一个host目录
--name [容器名称] 给容器指定一个名字
运行一个最新版本nginx容器
docker run --name mynginx -d nginx:latest
docker run -p 80:80 -v /data:/data -d nginx:latest
start
启动一个或多个已经被停止的容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
实例
docker start mynginx
stop
停止一个运行中的容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]
实例
docker stop mynginx
restart
重启一个运行中的容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]
实例
docker restart mynginx
kill
杀掉一个运行中的容器。
docker kill [OPTIONS] CONTAINER [CONTAINER...]
-s :向容器发送一个信号
实例
docker kill -s KILL mynginx
延伸:stop与kill的区别
- docker stop: Stop a running container (send SIGTERM, and then SIGKILL after grace period)
- docker kill: Kill a running container (send SIGKILL, or specified signal)
docker stop,支持“优雅退出”。先发送SIGTERM信号,在一段时间之后(10s)再发送SIGKILL信号。Docker内部的应用程序可以接收SIGTERM信号,然后做一些“退出前工作”,比如保存状态、处理当前请求等。
docker kill,发送SIGKILL信号,应用程序直接退出。
rm
删除一个或多个容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
-f :通过 SIGKILL 信号强制删除一个运行中的容器。
-v :删除与容器关联的卷。
实例
docker rm -f mynginx
pause
暂停容器中所有的进程。
docker pause [OPTIONS] CONTAINER [CONTAINER...]
实例
docker pause mynginx
unpause
恢复容器中所有的进程
docker unpause [OPTIONS] CONTAINER [CONTAINER...]
实例
docker unpause mynginx
2.2 容器运维操作
ps
列出容器
docker ps [OPTIONS]
-a :显示所有的容器,包括未运行的。
实例
docker ps
exec
在运行的容器中执行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端
实例
docker exec -it mynginx /bin/bash
logs
获取容器的日志
docker logs [OPTIONS] CONTAINER
-f : 跟踪日志输出
-t : 显示时间戳
--since :显示某个开始时间的所有日志
实例
docker logs -f -t mynginx
port
列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口
docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
实例
docker port mynginx
docker port mynginx2 80
2.3 容器rootfs命令
commit
从容器创建一个新的镜像。
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
实例
docker commit -a 'Gideon' -m "my Nginx" mynginx nginx:v1
docker images #查看最新生成的image
cp
容器与主机之间的数据拷贝
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
实例
docker cp /t.txt mynginx:/
diff
检查容器里文件结构的更改。
docker diff [OPTIONS] CONTAINER
实例
docker diff mynginx
三、镜像操作
images
查看本地镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]
-a :列出本地所有的镜像
实例
docker -a images
docker images nginx #查看所有的nginx镜像
rmi
删除本地一个或多少镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
-f :强制删除;
实例
docker rmi -f nginx:v1
tag
标记本地镜像,将其归入某一仓库
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
实例
docker tag nginx:latest nginx:v2
docker images # 查看结果
build
四、仓库操作
login
登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker login [OPTIONS] [SERVER]
-u :登陆的用户名
-p :登陆的密码
实例
docker login -u 用户名 -p 密码
pull
从镜像仓库中拉取或者更新指定镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
-a :拉取所有 tagged 镜像
--disable-content-trust :忽略镜像的校验,默认开启
实例
docker pull nginx
push
将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker push [OPTIONS] NAME[:TAG]
--disable-content-trust :忽略镜像的校验,默认开启
实例
docker push nginx:v2
search
从Docker Hub查找镜像
docker search [OPTIONS] TERM
--no-trunc :显示完整的镜像描述;
-s :列出收藏数不小于指定值的镜像。
--automated :只列出 automated build类型的镜像;
实例
docker search nginx