容器操作

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"
文章作者: 路西法
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 以梦为马
docker docker 容器
喜欢就支持一下吧