zoukankan      html  css  js  c++  java
  • 🐳Docker常用命令

    一.帮助命令

    • docker version : 查看Docker版本信息

    • docker info : 查看Docker信息

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

    二.登入命令

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

    792e65bc759cf149299d8e326e23834

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

    d8a5d816fd656e2a4b07d8d821de00f

    三.获取镜像

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

    09f4ce0690e70577af308e9c188718c

    三.查看镜像信息

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

    1643a3abec03ff935e720abdbc3b903

    • 选项说明
    REPOSITORY 仓库名字
    TAG 版本号(latest:表示最新版本)
    IMAGE ID 镜像ID
    CREATED 镜像创建时间到现在
    SIZE 镜像文件的体积
    同一仓库源可以有多个"TAG",代表这个仓库源的不同个版本,我们使用" REPOSITORY:TAG" 来定义不同的镜像
    
    如果你不指定一个镜像的版本标签,例如你只使用"ubuntu","docker"将默认使用"ubuntu:latest"镜像
    
    • 参数说明

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

    -q : 只显示镜像 ID

    1f75a56e048d41ea1041f06a19d73dc

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

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

    四.为镜像打 TAG

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

    7a737c5c78d0158137c53537350349a

    五推送镜像

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

    d8af1f57ccd7661a4f07b59fb243e84

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

    ab9862e7b56122607ffa8430f39736b

    六.获取镜像详细信息

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

    c4727a121bb8705400351583fb9a7b1

    七.查看历史镜像

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

    9bac35c330d5d9d9024a200214d1159

    八.搜索镜像

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

    499bfebd2195ecf8b6e1238f11aca14

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

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

    3bb36539449c4a10e3dbebc98a12f33

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

    73ee1ba575bc6d14580518602f815f7

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

    4c600b6fbeadc8f18b22eba3b03fcf3

    --limit : 显示查询条数

    九.删除和清理镜像

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

    • -f : 强制删除

    1.删除单个示例

    • docker rmi -f bf756fb1ae65

    699cb59d21407dceba953e5d188c2e5

    2.删除多个

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

    3.删除全部

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

    17f5f95ffa348426fd4c2fb24c274a0

    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
    
    • 本地查看

    52f2cc79571af1d9df47d937d4bb586

    • 浏览器查看

    4d878b34aa1bad0b7f03752484cbf53

    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] > [压缩包名称]

    image-20201201205850158

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

    image-20201201210245092

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

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

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

    image-20201201211035163

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

    image-20201201211319690

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

    image-20201201211836092

    image-20201201212320583

    十三.进入容器(常用)

    1.attach

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

    image-20201201214705914

    2.exec (官方推荐使用)

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

    image-20201201215238915

    3.nsenter

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

    4.ssh

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

    十四.复制

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

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

    image-20201201215912355

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

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

    image-20201201220308373

    十五.查看容器日志

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

    更多命令参考

  • 相关阅读:
    Java:类加载器(ClassLoader)
    Java 并发:Executor
    Java 并发:线程中断-interrupt
    UNIX IPC: POSIX 消息队列 与 信号
    Java与C++区别:重载(Overloading)
    UNIX IPC: POSIX 消息队列
    PAT 1078. Hashing
    PAT 1032. Sharing
    回顾经典问题算法:LIS, LCS-(DP类别)
    url编码模块
  • 原文地址:https://www.cnblogs.com/songhaixing/p/14071166.html
Copyright © 2011-2022 走看看