Docker 命令
容器操作
1. 列出容器
docker ps [OPTIONS]
参数:
- OPTIONS:
○ -a:列举所有容器包括已经停止的容器。
例子:
docker ps -a
2. 创建并运行容器
命令执行时会先检查本地是否存在指定的镜像,不存在就从 registry 下载
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
参数:
- OPTIONS:
○ -it:以命令行交互的方式启动容器,退出时使用exit
○ -d:容器后台运行
○ --rm:容器运行停止后自动删除容器
○ -p:指明端口映射,容器端口:主机端口
○ -v:挂载数据卷映射,主机路径:容器路径 - IMAGE:容器镜像名称
- COMMAND:容器启动时执行的命令,命令执行完成后容器会自动终止,如果想要容器不终止需要让命令不能退出。
例子:
docker run -it ubuntu /bin/bash
3. 启动容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
参数:
- OPTIONS:
○ -i:以命令行交互的方式启动容器 - CONTAINER:处于停止状态的容器名称,可以一次启动多个
例子:
docker start -i ubuntu
4. 停止容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker kill [OPTIONS] CONTAINER [CONTAINER...]
参数:
- OPTIONS:
○ -t:容器停止前需要等待的时间,单位: s - CONTAINER:处于运行状态的容器名称,可以一次停止多个
例子:
docker stop -t 5 ubuntu
5. 重启容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]
参数:
- OPTIONS:
○ -t:容器停止前需要等待的时间,单位: s - CONTAINER:处于运行状态的容器名称,可以一次重启多个
例子:
docker restart -t 5 ubuntu
6. 删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
参数:
- OPTIONS:
○ -f:强制停止并删除正在运行的容器
○ -v:删除容器产生的匿名卷,防止出现残留 - CONTAINER:需求删除的容器名称,可以一次删除多个
例子:
docker rm -f ubuntu
7. 容器执行命令
容器在 run 时指定 -d 在后台运行,需要重新进入容器执行命令或重新进入docker时需要使用此命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
参数:
- OPTIONS:
○ -it:以命令行交互的方式进入容器 - CONTAINER:要进入的容器名称
- COMMAND:容器启动时执行的命令,命令执行完成后自动退出,容器不停止
例子:
docker exec -it ubuntu /bin/bash
8. 容器日志查看
docker logs [OPTIONS] CONTAINER
参数:
- OPTIONS:
○ -t:显示log事件戳
○ -f:跟随log输出进行滚动打印 - CONTAINER:要查看日志的容器名称
例子:
docker logs -tf ubuntu
9. 数据拷贝
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
参数:
- CONTAINER:容器名称
- SRC_PATH:源文件地址
- DEST_PATH:目标文件地址
例子:
docker cp 202504c9fc72:/home/test.txt ./
10. rootfs导出/导入
该命令将容器的文件系统导出为一个 tar 归档文件,不包括任何关于容器如何运行的元数据(例如环境变量、命令、端口映射等)以及使用的卷(volumes),移植其他机器上需要配置参数来恢复运行环境。
docker export [OPTIONS] CONTAINER
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
参数:
- CONTAINER:要查看日志的容器名称
- file:快照文件
- URL:快照URL
例子:
# 快照导出
docker export 7691a814370e > ubuntu.tar
# 快照文件导入
cat ubuntu.tar | docker import - ubuntu:v1.0
# 从URL导入快照
docker import http://example.com/ubuntu.tgz - example/imagerep
11. 查看容器进程信息
docker top CONTAINER [ps OPTIONS]
参数:
- CONTAINER:容器名称 或 容器ID
例子:
docker top xxxx
12. docker 管理
docker system COMMAND
参数:
- COMMAND:
○ df:查看镜像、容器、数据卷所占用的空间
○ info:显示docker 服务信息
○ prune:清除docker缓存数据,包括:停止的容器、废弃的镜像、没有使用的网络(谨慎使用)
例子:
docker system df
镜像操作
1. 列出本地镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]
参数:
- OPTIONS:
○ -a:列举出所有镜像包括隐藏的中间层镜像(中间层镜像被其他顶层镜像公用)
例子:
docker images -a
2. 镜像制作
基于commit 的镜像构建
commit 方式是基于本地已经配置好的容器打包成一个新的镜像。
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
参数:
- OPTIONS:
○ -a:镜像制作者的名称
○ -m:提交的说明信息 - CONTAINER:容器运行时的ID 或名称
- REPOSITORY[:TAG]:容器注册中心和Tag 信息
例子:
docker commit -m "compile env" -a "xxx" ubuntu xxxx/hub:v1.0.0-ubuntu20.04
基于dockerfile 的镜像制作
dockerfile 方式是通过拉取新的镜像,然后通过Dockerfile 进行配置完成镜像的构建,更加灵活
docker build [OPTIONS] PATH | URL |
参数:
- OPTIONS:
○ -f:指定Dockerfile 文件所在目录
○ -t:tag 信息,格式为 format: "name:tag"
○ –build-arg:传递构建时的参数,可以使用这个构建不同的镜像 - PATH:构件时的上下文路径也就是Dockerfile 所在路径
- URL:URL路径
例子:
docker build -t ubuntu:20.04 -f ./
docker build -t hello-world https://github.com/docker-library/hello-world.git#master:amd64/hello-world
3. 保存镜像
将docker commit 制作的镜像进行保存
docker save [OPTIONS] IMAGE [IMAGE...]
参数:
- OPTIONS:
○ -o:输出到指定文件 - IMAGE:要保持的镜像名称或ID
例子:
docker save -o ubuntu.tar ubuntu
4. 导入镜像
将保存为tar格式的镜像文件进行导入
docker load [OPTIONS]
参数:
- OPTIONS:
○ -i:从指定文件导入镜像
例子:
docker load -i ubuntu.tar
5. 删除本地镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
参数:
- IMAGE:待删除的进行名称或ID,一次可以删除多个镜像
例子:
docker rmi a507559b731e
6. 镜像仓库登录/登出
docker login [OPTIONS] [SERVER]
docker logout [SERVER]
参数:
- OPTIONS:
○ -u:用户名
○ -p:密码
例子:
docker login -u xxxx -p xxxxx
7. 标记本地镜像
给本地镜像打一个标记(tag),并其归入某一仓库
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
参数:
- SOURCE_IMAGE[:TAG]:源镜像仓库:Tag信息 或源镜像ID
- TARGET_IMAGE[:TAG]:目标镜像仓库:Tag信息
例子:
docker tag ubuntu:20.04 reg.docker.alibaba-inc.com/xx/compile-env:ubuntu20.04
8. 镜像推送
docker push [OPTIONS] NAME[:TAG]
参数:
- NAME[:TAG]:源镜像仓库:Tag信息
例子:
docker push reg.docker.alibaba-inc.com/xx/compile-env:ubuntu20.04
9. 镜像拉取
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull imageAddr/library/NAME[:TAG|@DIGEST]
参数:
- NAME[:TAG|@DIGEST]:源镜名称:Tag信息
- imageAddr: 镜像源地址
- library: 是一个特殊的命名空间,它代表的是官方镜像,如果是某个用户的镜像就把library替换为镜像的用户名。
例子:
docker pull ubuntu:20.04
docker pull docker.1panel.live/library/ubuntu:20.04 # 国内可用
docker pull hub.rat.dev/library/ubuntu:20.04 # 国内可用
10. 镜像清理
默认情况只会清楚虚悬镜像(没被标记且没被其它任何镜像引用的镜像)
docker image prune [OPTIONS]
参数:
- OPTIONS:
○ -a:清楚无容器使用的镜像,谨慎使用,防止镜像被清除
○ --filter:进行时间过滤
例子:
docker image prune -a --filter "until=24h"
本文链接:
/archives/1719235003001
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
以梦为马!
喜欢就支持一下吧