Docker常用命令

帮助启动类命令

启动docker: systemctl start docker
停止docker: systemctl stop docker
重启docker: systemctl restart docker
查看docker状态: systemctl status docker
开机启动: systemctl enable docker
查看docker概要信息: docker info
查看docker总体帮助文档: docker --help
查看docker命令帮助文档: docker 具体命令 --help

镜像命令

1.docker images    # 列出本地主机上的镜像
    -a :列出本地所有的镜像(含历史映像层)
    -q :只显示镜像ID。

2.docker search 某个XXX镜像名字      # 查找镜像 docker search redis
    docker search [OPTIONS] 镜像名字
    docker search --limit 5 redis   # --limit : 只列出N个镜像,默认5个

3.docker pull 某个XXX镜像名字   # 下载镜像  docker pull ubuntu
    docker pull 镜像名字[:TAG]
    docker pull 镜像名字
        没有TAG就是最新版,等价于docker pull 镜像名字:latest

4.docker system df   # 查看镜像/容器/数据卷所占的空间

5.docker rmi 某个XXX镜像名字ID  # 删除镜像  docker rmi f3b60ab0cb2d
    删除单个 docker rmi  -f 镜像ID
    删除多个 docker rmi -f 镜像名1:TAG 镜像名2:TAG 
    删除全部 docker rmi -f $(docker images -qa)

6.dangling image  # 查看虚悬镜像,<none>

容器命令

创建与启动容器

创建容器命令

    docker run [OPTIONS] 镜像名:标签名
    创建容器  [OPTIONS] 常用的参数说明:
        1)-i 表示交互式运行容器(就是创建容器后,马上会启动容器,并进入容器 ),通常与 -t 同时使用 。
        2)-t 启动后会进入其容器命令行, 通常与  -i 同时使用; 加入  -it 两个参数后,容器创建就能登录进去。即分配一个伪终端。
        3)--name 为创建的容器指定一个名称 。
        4)-d 创建一个守护式容器在后台运行,并返回容器ID;
        这样创建容器后不会自动登录容器,如果加 -i 参数,创建后就会运行容器。
        5)-v 表示目录映射, 格式为: -p 宿主机目录:容器目录
        注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
        6)-p 表示端口映射,格式为: -p 宿主机端口:容器端口

前台交互式启动

         docker run -it redis:6.0.8

后台守护式启动

        docker run -d redis:6.0.8

交互式容器

    说明: 就是创建容器后,马上会启动容器,并进入容器
    创建一个交互式容器并取名为 mycentos , ( /bin/bash 是linux中的命令解析器,会进入到容器里面命令行)
    docker run -it --name=mycentos centos:7 /bin/bash

退出容器

1.退出容器
    退出并停止当前容器, 注意在容器内部的命令行执行
    exit
    用 docker ps -a 命令,容器的状态变成 Exited 退出状态
2.退出不停止当前容器
    按键盘: Ctrl + p + q ,按一次一行,则多按几次,一般是连两次即可。

启动与停止容器

1.启动已运行过的容器
    docker start 容器名称|容器id
    如: docker start mycentos
2.启动所有运行过的容器(注意:反单引号` `), docker ps -a -q 是查询所有运行过的容器ID
    docker start `docker ps -a -q`
3.停止正在运行的容器(正常停止)
    docker stop 容器名称|容器id
    如: docker stop mycentos
4.强制停止正在运行的容器(一般不用此,除非卡了)
    docker kill 容器名称|容器id
    如: docker kill mycentos1
5.停止所有在运行的容器
    docker stop `docker ps -a -q`

登录容器

登录已经启动的容器方式:

1.使用  docker exec 进入容器中打开命令行终端
    docker exec -it 容器名称|容器id /bin/bash
    如: docker exec -it mycentos2 /bin/bash
2.exit 针对通过  docker exec 进入的容器,只退出但不停止容器
    [root@0c20b3037f46 /]# exit

查看容器日志

docker logs 容器ID

查看容器内运行的进程

docker top 容器ID

查看容器内部细节

docker inspect 容器ID

拷贝宿主机与容器中的文件

如果我们需要将宿主机文件拷贝到容器内可以使用  docker cp 命令,也可以将文件从容器内拷贝到宿主机

将宿主机文件拷贝到容器内
    docker cp 要拷贝的宿主机文件或目录 容器名称:容器文件或目录
    1. 在宿主机上创建一个testfile文件并写入内容
        cd /  #切换到根目录/下
        echo 123456 > testfile #创建并写入内容 testfile 文件中
        ls  #查看是否已创建
        cat testfile  #查看文件内容
    2. 将testfile文件拷贝进 mycentos2 容器中的  /opt 目录下(mycentos2要是UP启动状态)
        docker cp testfile mycentos2:/opt
    3. 登录 mycentos2 容器,查看/opt目录下是否有 newfile 文件
        [root@192 /]# docker exec -it mycentos2 /bin/bash
        [root@0c20b3037f46 /]# ls /opt/
        testfile
        [root@0c20b3037f46 /]# cat /opt/testfile
        123456
从容器内文件拷贝到宿主机
    docker cp 容器名称:要拷贝的容器文件或目录 宿主机文件或目录
    1. 向 mycentos2 容器中的  testfile 文件进行追加内容abc (要登录进容器中)
        cd /  #切换到根目录/下
        echo  123456 > newfile #创建并写入内容 newfile 文件中
        ls     #查看是否已创建
        cat testfile  #查看文件内容
    2. 需要使用 exit 先退出 docker 容器命令行,回到宿主机
    3. 从容器拷贝newfile文件到宿主机的  /opt 目录下(在宿主机中操作)
        docker cp mycentos2:/opt/newfile /opt/newfilecopy
    注意:文件拷贝  docker cp 命令 均在宿主机中操作

导入和导出容器

export 导出容器的内容留作为一个tar归档文件[对应import命令]
import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
案例
    导出 docker export 容器ID > 文件名.tar
        例子: docker export 61279fc3cc6a > abcd.tar.gz
    导入 cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
        例如: cat abcd.tar.gz | docker import - groot/ubuntu:2.1

数据目录挂载

我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。使用  -v 选项
    docker run -id -v /宿主机绝对路径目录:/容器内目录 --name=容器名  镜像名
需求:
    将宿主机的/opt目录与容器内的/opt目录进行映射,当在宿主机 /opt 目录下创建一个文件 test.txt ,这个 test.txt 会
自动同步到容器映射目录 /opt
实现:
    1. 创建容器并挂载映射目录(使用 -v 宿主机目录:容器目录 )
        创建容器时,将 宿主机目录/opt 挂载 容器目录/opt
        docker run -id -v /opt:/opt --name=mycentos3 centos:7
    2. 在宿主机/opt 目录下创建一个文件 test.txt ,这个 test.txt 会自动同步到容器映射目录 /opt 目录下
        echo 1 > /opt/test.txt
        docker exec -it mycentos3 /bin/bash
        cat /opt/test.txt
        1111
目录挂载只读(Read-only)权限
    实现挂载的目录只有 只读(Read-only)权限,命令如下 :
        docker run -id -v /宿主机绝对路径目录:/容器内目录:ro --name=容器名 镜像名
    实现:
        docker run -id -v /dataHost:/dataContainer:ro --name=mycentos4 centos:7

看容器内部细节

查看容器运行内部细节,比如可看容器的IP
    docker inspect mycentos2

查看容器IP地址

直接显示IP地址
    docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos2

删除容器

删除指定的容器:
    docker rm 容器名称 | 容器ID

docker根据镜像名称(模糊)查询镜像ID集合

    docker images | grep goharbor | awk '{print $3}'

docker根据镜像名称(模糊)删除镜像

   docker rmi -f `docker images | grep goharbor | awk '{print $3}'`

镜像批量导出

docker save -o nameImages.tar boot:1 mysql:5.7 redis:6.0.8
    注1:在这个示例中,-o 参数指定了导出的 .tar 文件的路径和名称(images.tar),而 image1、image2 和 image3 是要导出的镜像的名称。
    注2:image1、image2镜像一定是名称加标签(tag),只用ID在导入的时候会出现没有镜像名称与标签的情况

镜像批量导入

docker load -i nameImages.tar
    注:在这个示例中,-i 参数指定了要导入的 .tar 文件的路径(images.tar)。执行这个命令后,images.tar 文件中的所有镜像都会被导入到本地的 Docker 引擎中。

  • 44
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值