0%

docker命令大全

文章字数:2132,阅读全文大约需要8分钟

一、容器生命周期管理

命令 含义
run 启动新容器
start 启动一个或多个被停止的容器
stop 停止容器,允许容器进行关闭前准备
restart 重启容器
kill 直接关闭容器
rm 删除一个或多个容器
pause 暂停容器中所有的进程
unpause 恢复容器中所有的进程
create 创建新容器,但不启动
exec 在运行的容器中执行命令

## 1.1 run
  • 示例
1
docker run [options] imageTag [cmd] [args]
  • 参数说明
  1. -a stdin指定标准输出内容类型,可选stdin``stdout``stderr
  2. -d后台运行容器,返回容器ID
  3. -i交互式运行容器,通常搭配-t
  4. -t为容器重新分配伪输入终端,通常搭配-i
  5. -P随机映射端口,容器内端口随机映射到主机端口
  6. -p指定端口映射宿主端口:容器端口
  7. --name="name"指定容器名称
  8. --dns 8.8.8.8指定容器的DNS,默认和宿主机一致
  9. --dns-search test.com指定容器DNS搜索域,默认和宿主机一致
  10. -h "hostname"指定容器hostname
  11. -e username="name"设置环境变量
  12. --env-file=[]从指定文件中获取环境变量
  13. --cpuset="0-2"或者--cpuset="0,1,2"绑定容器到指定的CPU上运行
  14. -m设置容器使用内存最大值
  15. --net="bridge"指定容器网络连接类型,可选bridge``host``none``container
  16. --link=[]添加链接到另一个容器
  17. --expose=[]开发一个端口或者一组端口
  18. --volume``-v绑定一个卷

## 1.2 start
  • 示例
1
docker start [OPTIONS] CONTAINER [CONTAINER...]

## 1.3 stop
  • 示例
1
docker stop [OPTIONS] CONTAINER [CONTAINER...]

## 1.4 restart
  • 示例
1
docker restart [OPTIONS] CONTAINER [CONTAINER...]

## 1.5 kill
  • 示例
1
2
3
4
docker kill [OPTIONS] CONTAINER [CONTAINER...]

# -s 向容器发送一个信号
docker kill -s KILL mynginx

## 1.6 rm
  • 示例
1
docker rm [OPTIONS] CONTAINER [CONTAINER...]
  • 参数
  1. -f通过SIGKILL信号强制删除运行中的容器
  2. -l移除容器间的网络连接,而不是容器本身
  3. -v删除容器关联的卷

## 1.7 pause
  • 示例
1
docker pause CONTAINER [CONTAINER...]

## 1.8 unpause
  • 示例
1
docker unpause CONTAINER [CONTAINER...]

## 1.9 create
  • 示例
1
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

## 1.10 exec
  • 示例
1
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

二、容器操作

命令 含义
ps 列出所有容器
inspect 获取容器/镜像的元数据
top 查看容器中运行的进程信息,支持ps命令参数
attach 连接到正在运行中的容器
events 从服务器获取实时事件
logs 获取容器的日志
wait 阻塞运行,直到容器停止。然后打印容器退出代码
export 将文件系统当做tar归档文件,导出到指定输出
port 列出容器端口映射

## 2.1 ps
  • 示例
1
docker ps [OPTIONS]
  • 参数
  1. -a显示所有的容器,包括未运行的
  2. -f根据条件过滤
  3. --format指定返回内容的模板
  4. -l显示最近创建的容器
  5. -n列出最近创建的n个容器
  6. --no-trunc不阶段输出
  7. -q静默模式,只显示容器编号
  8. -s显示总的文件大小

## 2.2 inspect
  • 示例
1
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
  • 参数
  1. -f指定返回值的模板文件
  2. -s显示总的文件大小
  3. --type为指定类型返回JSON

## 2.3 top
  • 示例
1
docker top [OPTIONS] CONTAINER [ps OPTIONS]
  • 相当于在容器内部执行top命令

## 2.4 attach
  • 示例
1
docker attach [OPTIONS] CONTAINER
  • --sig-proxy=false参数可以使ctrl-dctrl-c不会退出容器,仅退出连接

## 2.5 events
  • 示例
1
docker events [OPTIONS]
  • 参数
  1. -f根据条件过滤
  2. --since从指定的时间戳后显示所有事件
  3. --until流水时间显示到指定时间为止

## 2.6 logs
  • 示例
1
docker logs [OPTIONS] CONTAINER
  • 参数
  1. -f跟着日志输出
  2. --since显示某个开始时间的所有日志
  3. -t显示时间戳
  4. --tail仅列出最新N条容器日志

## 2.7 wait
  • 示例
1
docker wait [OPTIONS] CONTAINER [CONTAINER...]

## 2.8 export
  • 示例
1
docker export [OPTIONS] CONTAINER
  • 参数
  1. -o将输出内容写到文件

## 2.9 port
  • 示例
1
2
docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
# docker port mymysql

三、容器rootfs命令

命令 含义
commit 从容器创建一个新的镜像,将容器保存成新镜像
cp 容器和主机直接数据拷贝
diff 检查容器里文件结构的更改

## 3.1 commit
  • 示例
1
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
  • 参数
  1. -a镜像作者
  2. -c使用Dockerfile来创建镜像
  3. -m镜像说明
  4. -p提交时将容器暂停

## 3.2 cp
  • 示例
1
2
docker cp [OPTIONS] 容器:地址 主机地址
docker cp [OPTIONS] 主机地址 容器:地址
  • -L保持源目标中的链接

## 3.3 diff
  • 示例
1
docker diff [OPTIONS] CONTAINER

四、镜像仓库

命令 含义
login/loginout 登录/退出镜像仓库
pull 从镜像仓库中拉取或者更新指定镜像
push 本地镜像上传到镜像仓库
search 从Docker Hub查找镜像

## 4.1 login
  • 示例
1
2
3
# -u 用户名 -p 密码 不指定仓库地址,默认是Docker Hub
docker login [OPTIONS] [SERVER]
docker logout [OPTIONS] [SERVER]

## 4.2 pull
  • 示例
1
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
  • 参数
  1. -a拉取所有tagged镜像
  2. --disable-content-trust忽略镜像校验,默认开启

## 4.3 push
  • 示例
1
2
# --disable-content-trust :忽略镜像的校验,默认开启
docker push [OPTIONS] NAME[:TAG]

## 4.4 search
  • 示例
1
docker search [OPTIONS] TERM
  • 参数
  1. --automated只列出automated build类型的镜像
  2. --no-trunc显示完整镜像描述
  3. -f stars=10列出收藏数不小于指定数的镜像

五、本地仓库

命令 示例 含义
images 列出本地镜像
rmi 删除本地一个或多个镜像
tag 标记本地镜像,将其归入某一仓库
build 使用Dockerfile创建镜像
history 查看指定镜像的创建历史
save 和export类似,生产的文件是多层,可以回滚到上个版本
load
import

## 5.1 images
  • 示例
1
docker images [OPTIONS] [REPOSITORY[:TAG]]
  • 参数
  1. -a列出本地所有镜像(含中间影响层,默认没有)
  2. --digests显示镜像摘要
  3. -f显示满足条件的镜像
  4. --format指定返回值的模板文件
  5. --no-trunc显示完整的镜像信息
  6. -q只显示镜像ID

## 5.2 rmi
  • 示例
1
docker rmi [OPTIONS] IMAGE [IMAGE...]
  • 参数
  1. -f强制删除
  2. --no-prune不移除该镜像的过程镜像,默认移除

## 5.3 tag
  • 示例
1
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

## 5.4 build
  • 示例
1
2
docker build [OPTIONS] PATH | URL | -
# docker build -t runoob/ubuntu:v1 .
  • 参数
  1. --build-arg=[]设置镜像创建时的变量
  2. --cpu-shares设置cpu使用权重
  3. --cpu-period限制cpu cfs周期
  4. --cpu-quota限制cpu cfs配额
  5. --cpuset-cpus指定使用的cpu id
  6. --cpuset-mens指定使用的内存id
  7. --disable-content-trust忽略检验,默认开启
  8. -f指定使用的Dockerfile路径,.为本目录下的dockerfile
  9. --force-rm设置镜像过程中删除中间容器
  10. --isolation使用容器隔离技术
  11. --label=[]设置镜像使用的元数据
  12. -m设置内存最大值
  13. --memory-swap设置swap最大值为内存+swap,-1表示不限制swap
  14. --no-cache创建镜像的过程中不适用缓存
  15. --pull尝试更新镜像的新版本
  16. --quiet,-q安静模式,成功后只输出镜像ID
  17. --rm设置镜像成功后删除中间容器
  18. --shm-size设置/dev/shm的大小,默认64m
  19. --ulimit设置Ulimit配置
  20. --squashDockerfile中所有操作压缩为一层
  21. --tag,-t设置镜像名字及标签,通常name:tagname,可以在一次构建中为一个镜像设置多个标签
  22. --network默认default在构建期间设置RUN指令的网络模式

## 5.5 history
  • 示例
1
docker history [OPTIONS] IMAGE
  • 参数
  1. -H以可读的格式打印镜像大小和日期,默认true
  2. --no-trunc显示完整提交记录
  3. -q仅列出提交记录ID

其他

命令 示例 含义
info docker info [OPTIONS] 查看docker系统、镜像、容器数等信息
version docker version 显示docker版本信息