03 Docker常用命令

156次阅读
没有评论

共计 3446 个字符,预计需要花费 9 分钟才能阅读完成。

一. 帮助命令

  • docker version : 查看 Docker 版本信息

  • docker info : 查看 Docker 信息

  • docker --help : 查看帮助信息

二. 登入命令

  • docker login [参数] [镜像仓库 URL]

03 Docker 常用命令

  • 参数--username=xxx : 指定阿里云用户名(我用的是阿里云)
  • passwd : 是创建仓库时的密码
  • url : 仓库链接

03 Docker 常用命令

三. 获取镜像

  • 格式 : docker pull [镜像仓库 URL]/[命名空间名称]/[仓库名称]:[镜像版本号]
  • 示例 : docker pull docker.io/library/busybox:latest
URL docker.io
命名空间 library
仓库名称 busybox
版本号 latest
  • 简化 : docker pull busybox:latest (.....)

03 Docker 常用命令

三. 查看镜像信息

  • docker images [参数] / docker images ls [参数] 列出本地主机上的镜像

03 Docker 常用命令

  • 选项说明
REPOSITORY 仓库名字
TAG 版本号(latest: 表示最新版本)
IMAGE ID 镜像 ID
CREATED 镜像创建时间到现在
SIZE 镜像文件的体积
🔰同一仓库源可以有多个 "TAG",代表这个仓库源的不同个版本,我们使用 " REPOSITORY:TAG" 来定义不同的镜像

🔰如果你不指定一个镜像的版本标签,例如你只使用 "ubuntu","docker" 将默认使用 "ubuntu:latest" 镜像
  • 参数说明

-a : 显示所有镜像, 包括临时镜像

-q : 只显示镜像 ID

03 Docker 常用命令

--digests : 显示镜像再要信息

--no-trunc : 显示完整的镜像信息

四. 为镜像打 TAG

  • 格式 : docker tag [原镜像仓库 url]/[原镜像命名空间]/[原镜像仓库名称]:[版本号] [新镜像仓库 url]/[新镜像命名空间]/[新镜像仓库名称]:[版本号]
  • 示例 : docker tag busybox:latest registry.cn-shanghai.aliyuncs.com/python16-shawn/busybox:v1

03 Docker 常用命令

五推送镜像

  • 格式 : docker push [镜像仓库 URL]/[命名空间名称]/[仓库名称]:[版本号]
  • 示例 : docker push registry.cn-shanghai.aliyuncs.com/python16-shawn/busybox:v1

03 Docker 常用命令

再看看我的阿里云镜像仓库

03 Docker 常用命令

六. 获取镜像详细信息

  • 格式 : docker inspect [镜像 ID] / [镜像名称:版本号]
  • 示例 : docker inspect busybox:latest
  • -f : 用 "golang" 语言模板语法获取镜像相关信息

03 Docker 常用命令

七. 查看历史镜像

  • 格式 : docker history [镜像名字: 镜像版本号] / [镜像 ID]
  • 示例 : docker history dc3bacd8b5ea

03 Docker 常用命令

八. 搜索镜像

  • 格式 : docker search [所搜索的镜像名称] [参数]
  • 示例 : docker search python

03 Docker 常用命令

  • 列表参数
NAME 仓库名称
DESCRIPTION 描述
STARS 收藏个数
OFFICIAL 是否是官方镜像
AUTOMATED 是否是自构建的镜像
  • 命令行参数

-f : 过滤 示例: docker search python -f stars=300 (收藏 300 的)

03 Docker 常用命令

-s : 列出搜藏不小于指定值的镜像 : 示例 : docker search python -s 300

03 Docker 常用命令

--automated : 只列出 automated build 类型的镜像

03 Docker 常用命令

--limit : 显示查询条数

九. 删除和清理镜像

  • 格式 : docker rmi [镜像名称:版本号] / [镜像 ID]

  • -f : 强制删除

1. 删除单个示例

  • docker rmi -f bf756fb1ae65

03 Docker 常用命令

2. 删除多个

  • docker rmi -f [镜像名 1:TAG] [镜像名 2:TAG]...

3. 删除全部

  • docker rmi -f $(docker images -qa)

03 Docker 常用命令

4. 清理镜像

  • 格式 : docker image prune [参数]
  • 参数 : -a (all) 清理所有没有被使用的镜像
  • -f : 强制

十. 保存镜像

  • 格式 : docker commit [参数] [容器 ID] / [容器名称: 版本号]
  • 参数:
-a 指定作者
-m 简介
-p 保存镜像时, 镜像暂停运行

十一. 运行一个容器

前提 : 有镜像才能创建容器, 可以先下载一个: docker pull nginx

  • 格式 : docker run [参数] [镜像名称 / 镜像 ID] [执行的命令(默认执行指定的命令)]
  • 参数:
-d 以守护进程的方式运行
-p 指定端口映射(格式:宿主主机端口: 容器向外暴露的端口)
-P 随机端口映射
--name 指定容器的名称(同一台宿主主机上的 docker 名称不能重复)
--rm 当一个容器结束了它的生命周期,就立即删除
-v 映射存储卷(可以映射文件及文件夹)
-i 打开标准输出(通常与 t 连用)
-t 创建一个伪终端
-e 在容器内设置一个环境变量
  • 示例
"-d","-p"
docker run -d -p 8899:80 nginx:1.19.2
"-P"
docker run -d -P nginx:1.19.2
"--name"
docker run -d --name nginx_name -P nginx:1.19.2
"--rm"
docker run -d --rm --name nginx_rm nginx:1.19.2
"-v"
docker run -d -v /root/test:/usr/share/nginx/html nginx:1.19.2
"-e"
docker run -d -e NGINX_NAME=nginx nginx:1.19.2
  • 本地查看

03 Docker 常用命令

  • 浏览器查看

03 Docker 常用命令

ps : docker 当中至少有一个应用程序运行在前台

十一. 容器相关命令

1. 列出当前所有正在运行的容器

  • docker ps
  • 参数:
-a 列出当前所有正在运行的容器 + 历史上运行过的
-l 显示最近创建的容器
-n 显示最近 n 个创建的容器
-q 静默模式,只显示容器 ID

2. 退出容器

  • exit : 容器停止退出
  • Ctrl+P+Q : 容器不停止退出

3. 启动容器

  • docker start [容器 ID / 容器名]

4. 重启容器

  • docker restart [容器 ID / 容器名]

5. 停止容器

  • docker stop [容器 ID / 容器名]
  • docker stop -f $(docker ps -qa) (所有)

6. 强制停止容器

  • docker kill [容器 ID / 容器名]

7. 刪除已停止的容器

  • docker rm [容器 ID]
  • docker rm -f $(docker ps -qa)

十二. 导入、导出成镜像文件

1. 针对容器进行导出导入

  • export : 将容器保存为镜像
  • import : 将 export 导出的包导入为镜像 -(可自定义镜像名字)
  • 格式 : docker export [容器名或 ID] > [压缩包名称]

03 Docker 常用命令

  • 格式 : docker import [压缩包名称] [自定义镜像名称]:[版本号]

03 Docker 常用命令

ps : 通过 docker run -d -P nginx_song:v22 nginx -g 'daemon off;' 运行导入的 (由容器导出的镜像)

2. 针对镜像进行导出导入

  • save : 保存镜像, (当使用镜像 ID 保存镜像,导入时没有镜像名称)
  • load : 导入镜像, 不能自定义名称, save 保存的更完整
  • 格式 : docker save [镜像名或 ID] > [压缩包名称]
  • 注意 : 如果使用 ID 导出, 导入时没有镜像名和标签, 只有 \<none>

03 Docker 常用命令

  • 打包多个格式 : docker save -o [压缩包名称] [镜像名称或 ID ...]

03 Docker 常用命令

  • 格式 : docker load < [压缩包名称]

03 Docker 常用命令

03 Docker 常用命令

十三. 进入容器(常用)

1.attach

  • 格式 : docker attach [容器名或 ID]
  • 通过管道, 连接容器内 PID=1 的进程
  • 至少有一个进程运行在前台
  • 会随着退出而停止容器的运行, 并且无法交互输入

03 Docker 常用命令

2.exec(官方推荐使用)

  • 格式 : docker exec [参数] [容器名或 ID] [命令]
  • 进入示例 : docker exec -it 327ebc44385f sh
  • 相当于在容器里面执行了一个命令

03 Docker 常用命令

3.nsenter

  • 创建一个管道, 链接容器上
  • 配合 docker inspect 来使用
  • 格式示例 : nsenter --target $(docker inspect -f {{.State.Pid}} nginxv1 ) --mount --uts --ipc --net --pid

4.ssh

  • 在容器里面安装一个 sshd 服务

十四. 复制

1. 从容器内复制文件到宿主机

  • 格式 : docker cp [容器 ID: 容器内文件路径] 宿主主机路径

03 Docker 常用命令

2. 从宿主机复制文件到容器

  • 格式 : docker cp 宿主主机路径 [容器 ID:容器内文件路径]

03 Docker 常用命令

十五. 查看容器日志

  • 格式 : docker logs [容器名称 / ID]
  • 示例 : dicker logs e5dcae424f57

更多命令参考

正文完
 
shawn
版权声明:本站原创文章,由 shawn 2023-06-16发表,共计3446字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)