• Docker常用命令及示例


    前言

      用于记录自己在使用docker时使用的常用命令以及示例。

    镜像

    镜像拉取

    docker pull ${docker-registry/}${repo}:${tag}

    不指仓库地址时,默认会使官方仓库,即docker.io/library

    不指定tag时,默认为latest

    镜像标签

    docker tag ${imageid} ${docker-registry/}${repo}:${tag}

    给镜像重命,标签不能重复。

    当推送镜像前需要将仓库名修改成想推送的仓库地址

    镜像导出导入

    docker save ${image} > ${tar}
    docker load  ${tar}

    将镜像文件导出成tar包,或者是将tar包镜像导入

    删除镜像

    docker rmi ${image}

    被正在运行的容器所使用的镜像无法删除,可以先停止容器然后强制删除

    docker rmi -f ${image}

    无法强制删除存在子镜像的父镜像(即dockerfile中FROM命令引入的镜像为当前镜像的父镜像),如果想删除此类镜像,需要先删除其所有子镜像。这里提供一个脚本可列出某镜像的所有子镜像

    #!/bin/bash
    parent_id=$1
    for i in $(docker images -q)
    do
        if [ "$1" != "$i" ];then 
          docker history $i | grep -q $1 && docker images | grep $i
        fi
    done | sort -u

    将以上内容保存为findchildimage.sh,运行findchildimage.sh ${imageid}。

    容器

    启动容器

    前台,后台启动

    docker run --rm -it ${image}
    docker run --rm -d ${image}

    --rm 表示容器停止运行后删除容器

    --it 表示通过控制台交互方式运行容器

    -d 表示后台运行容器

    端口映射,及目录挂载

    docker run -v ${host_path}:${container_path} -p ${host_port}:${container_port}

     -v 表示将主机的目录挂载到容器对应目录 (特别注意,如果是想到把容器里已有的文件放到外部进行读写,则应该先将容器里的文件拷贝出来到待挂载的目录后,再进行挂载)

    -p 表示将主机的端口映射到容器的端口 (一般当容器提供外部服务时需要加入该参数。这样外部通过访问主机的端口,即可访问到容器内对应的端口,默认为tcp协议类型)

    入口指定

    有些时候不想运行镜像里面的入口程序或命令,可以通过以下方式强制更改。下面的例子是将入口强制修改为sh。

    docker run --rm -it --entry-point /bin/sh ${image}

    停止,重启容器

    docker restart|stop ${container}

    进入容器

    常用进入容器的sh的命令

    docker exec -it ${container} /bin/sh

    参考:

    https://docs.docker.com/engine/reference/run/

  • 相关阅读:
    [HDU2866] Special Prime (数论,公式)
    [骗分大法好] 信息学竞赛 骗分导论(论文搬运)
    flayway数据库管理
    RabbitMQ的基本概念与原理
    springboot+ideal实现远程调试
    盘点总结
    mysql查看进程命令
    Java字符串正则文本替换
    springboot代码级全局敏感信息加解密和脱敏方案
    使用PMD进行代码审查
  • 原文地址:https://www.cnblogs.com/wp2ypy/p/10303128.html
Copyright © 2020-2023  润新知