• Docker常用命令


    docker常用命令

    1、基础命令

    启动docker

    systemctl start docker
    
    • 1

    关闭docker

    systemctl stop docker
    
    • 1

    重启docker

    systemctl restart docker
    
    • 1

    docker设置随服务器启动而启动

    systemctl enable docker
    
    • 1

    查看docker运行状态

    systemctl status docker
    
    • 1

    查看docker版本号

    docker info / docker version
    
    • 1

    docker帮助命令

    docker pull --help
    
    • 1

    查看自己服务器中的docker镜像

    docker images -a //a:all
    docker images -aq //显示全部,但是只显示id
    
    • 1
    • 2

    搜索镜像

    docker search 镜像名/id
    docker search--filter=STARS=9000 mysql //搜索 STARS >9000的 mysql 镜像
    
    • 1
    • 2

    拉取镜像

    docker pull 镜像名
    docker pull 镜像名:tag //tag是版本号
    
    • 1
    • 2

    不加tag 就默认拉取最新版本

    运行镜像

    docker run 镜像名
    docker run 镜像名:Tag
    
    • 1
    • 2

    run 命令是十分复杂的 有什么持久运行 映射端口 设置容器别名 数据卷挂载等

    停止容器

    docker stop 容器名/容器id
    
    • 1

    删除镜像

    docker rmi -f 镜像名/镜像ID
    docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID //删除多个 其镜像ID或镜像用用空格隔开即可
    docker rmi -f $(docker images -aq) //删除全部镜像
    docker image rm 镜像名称/镜像ID //强制删除镜像
    
    • 1
    • 2
    • 3
    • 4

    -f是强制删除标志

    命令行中,符号用于表示变量。在这个命令中,符号用于表示变量。在这个命令中,(docker images -aq) 返回一个列表,其中包含所有docker镜像的id,然后将此列表作为参数传递给docker rmi -f命令,用来强制删除所有docker镜像。因此,$符号指示命令行将其替换为由括号括起来的命令输出,以便在执行命令时使用正确的参数。

    保存镜像

    将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像

    docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
    docker save tomcat -o /myimg.tar //o:output
    
    • 1
    • 2

    加载镜像

    任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像

    docker load -i 镜像保存文件位置 //i:input
    
    • 1

    查看docker日志文件存储位置

    docker inspect --format='{{.LogPath}}' my_container
    
    • 1

    实际使用中将my_container换成想要查询容器的id或者名称

    查看docker镜像中的挂载点

    如果您想要在 Docker 容器运行时挂载一个主机目录,但是不知道该目录在容器中的路径,可以使用 docker inspect 命令查看容器的详细信息,包括容器中的挂载点。具体来说,您可以使用以下命令查看容器的详细信息:

    docker inspect container_name
    
    • 1

    在这个命令中,container_name 是您要查看的容器的名称或 ID。

    执行此命令后,将显示该容器的详细信息,包括其挂载点。您可以查看 "Mounts" 部分,以查看容器中的所有挂载点及其路径。例如:

    "Mounts": [
        {
            "Type": "bind",
            "Source": "/home/user/app",
            "Destination": "/app",
            "Mode": "",
            "RW": true,
            "Propagation": "rprivate"
        }
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这个例子中,/home/user/app 是在容器中挂载的主机目录的路径,/app 是容器中该目录的挂载点。因此,您可以使用 -v 选项将该目录挂载到容器中并指定其挂载点。例如:

    docker run -v /home/user/app:/app image_name
    
    • 1

    在这个例子中,image_name 是您要运行的 Docker 镜像的名称。当容器启动时,/home/user/app 目录将被挂载到容器中的 /app 目录,因此您可以在容器中使用 /app 查看实际路径。

    上述命令执行后,展示的数据较多,可以通过下面命令只查看容器挂载目录部分:

    docker inspect --format='{{json .Mounts}}'  | jq
    
    • 1

    2、进阶操作

    镜像标签

    有的时候呢,我们需要对一个镜像进行分类或者版本迭代操作,比如我们一个微服务已经打为docker镜像,但是想根据环境进行区分为develop环境与alpha环境,这个时候呢,我们就可以使用Tag,来进对镜像做一个标签添加,从而行进区分;版本迭代逻辑也是一样,根据不同的tag进行区分

    docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
    
    docker tag 源镜像名:TAG 想要生成新的镜像名:新的TAG
    
    # 如果省略TAG 则会为镜像默认打上latest TAG
    docker tag aaa bbb
    # 上方操作等于 docker tag aaa:latest bbb:test
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    # 我们根据镜像 quay.io/minio/minio 添加一个新的镜像 名为 aaa 标签Tag设置为1.2.3
    docker tag quay.io/minio/minio:1.2.3 aaa:1.2.3
    
    # 我们根据镜像 app-user:1.0.0 添加一个新的镜像 名为 app-user 标签Tag设置为alpha-1.0.0
    docker tag app-user:1.0.0 app-user:alpha-1.0.0
    
    • 1
    • 2
    • 3
    • 4
    • 5

    查看正在执行的容器列表

    docker ps
    docker ps -a
    
    • 1
    • 2

    运行容器

    # -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)  --name 给要运行的容器 起的名字  /bin/bash  交互路径
    docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash 
    
    -p 宿主机端口:容器端口
    
    docker run -itd --name redis002 -p 8888:6379 redis:5.0.5 /bin/bash
    
    # 运行一个docker redis 容器 进行 端口映射 两个数据卷挂载 设置开机自启动
    docker run -d -p 6379:6379 --name redis505 --restart=always  -v /var/lib/redis/data/:/data -v /var/lib/redis/conf/:/usr/local/etc/redis/redis.conf  redis:5.0.5 --requirepass "password"
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    进入容器

    docker exec -it 容器名/容器ID /bin/bash
    
    #进入 前面的 redis001容器   
    docker exec -it redis001 /bin/bash
    
    • 1
    • 2
    • 3
    • 4

    退出容器

    #-----直接退出  未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭  
    exit
    # 优雅退出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭
    Ctrl + p + q
    
    • 1
    • 2
    • 3
    • 4

    杀死容器

    docker kill 容器ID/容器名
    
    • 1

    容器文件拷贝

    #docker cp 容器ID/名称:文件路径  要拷贝到外部的路径   |     要拷贝到外部的路径  容器ID/名称:文件路径
    #从容器内 拷出
    docker cp 容器ID/名称: 容器内路径  容器外路径
    #从外部 拷贝文件到容器内
    docker  cp 容器外路径 容器ID/名称: 容器内路径
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    查看容器日志

    docker logs -f --tail=要查看末尾多少行 默认all 容器ID
    
    • 1

    自己提交一个镜像

    docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag
    
    • 1

    容器改名

    docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag
    
    • 1

    查看docker工作目录

    sudo docker info | grep "Docker Root Dir"
    
    • 1

    查看docker磁盘占用情况

    du -hs /var/lib/docker/ 
    
    • 1

    查看docker的磁盘使用情况

    docker system df
    
    • 1

    删除无用的容器和镜像

    #  删除异常停止的容器
    docker rm `docker ps -a | grep Exited | awk '{print $1}'` 
     
    #  删除名称或标签为none的镜像
    docker rmi -f  `docker images | grep '' | awk '{print $3}'`
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    清除无容器使用的镜像

    docker system prune -a
    
    • 1
  • 相关阅读:
    【OpenStack云平台】Packmaker 集群
    Day 91
    传递函数的推导和理解
    docker打包多架构镜像(manifest)
    向毕业妥协系列之机器学习笔记:高级学习算法-神经网络(二)
    git打tag和版本控制规范
    物联网技术助力智慧城市安全建设:构建全方位、智能化的安全防护体系
    python04- for in 、while in、列表、交叉赋值、元组、字典、集合(set)、公共方法、列表推到式
    OT-IT融合的纽带:解读边缘计算在钢铁行业应用场景
    sh脚本工具集锦(文件批量操作、音视频相关)持续更新
  • 原文地址:https://blog.csdn.net/m0_56896669/article/details/136786244