您的位置:首页 > 运维架构 > Docker

Docker 常用命令

2020-03-08 14:28 871 查看
Docker 基本命令

systemctl start docker
: 启动 Docker

systemctl stop docker
: 停止 Docker

systemctl restart docker
: 重启 Docker

systemctl enable docker
: 开机启动 Docker

docker info
: 查看 Docker 概要信息

docker --help
:查看 Docker 帮助文档

docker version
: 查看Docker版本信息

Docker 镜像 基本命令

1、

docker images
or
docker image ls
: 列出本机所有镜像

options 可选参数

可选参数 参数描述
-a 显示所有镜像(包括中间层)
-q 只显示镜像Id
-qa 可以组合使用
–digests 可以显示镜像的摘要信息
–no-trunc 可以显示完整的镜像信息

2、

docker search
: 搜索镜像

options 可选参数

可选参数 参数描述
–no-trunc 显示完整的镜像描述
-s 列出收藏数不小于指定值的镜像
–automated 只列出Docker Hub自动构建类型的镜像

docker pull
: 拉取镜像

dockers pull 镜像名称 : [TAG]

注意:不加TAG,默认下载最新版本 latest

3、

docker rmi
: 删除镜像

  1. 删除单个

    docker rmi 镜像名称:[TAG]  如果不写 TAG 则默认删除最新版 latest
  2. 有镜像生成的容器在运行的时候,会删除失败,需要加 -f 强制删除

    [root@iZbp17khuqdfkef3nl1db3Z ~]# docker rmi rabbitmq
    Error response from daemon: conflict: unable to remove repository reference "rabbitmq" (must force) - container 99693943e972 is using its referenced image 84bc4895f175
    docker rmi -f 镜像名称1:[TAG] 镜像名称2:[TAG] 多个镜像之间空格隔开
Docker 容器 基本命令
  1. docker run [OPTIONS] image [COMMAND][ARG...]
    : 创建并启动容器

    options 可选参数

    可选参数 参数描述
    –name=‘容器新名字’ 为容器指定一个名称
    -i 以交互模式运行容器、通常和 -t 同时使用
    -t 为容器重新分配一个伪输入终端,通常和 -i 同时使用
    -d 后台运行容器,并返回容器id
      docker run --name 别名 镜像id
      : 启动普通容器
    • docker run -it --name 别名 镜像Id
      来运行一个容器,取别名,交互模式运行,以及分配一个伪终端 : 启动交互式容器
    • docker run -di --name 别名 镜像Id
      :以守护式方式创建并启动容器
  2. docker ps [OPTIONS]
    : 列出容器

    options 可选参数

    可选参数 参数描述
    -a 显示所有容器,包括未运行的
    -f 根据条件过滤显示的内容
    –format 指定返回值的模板文件
    -l 显示最近创建的容器
    -n 显示最近创建的 n 个容器
    –no-trunc 不截断输出
    -q 静默模式,只显示容器编号
    -s 显示总的文件大小
    -qa 列出所有容器id
  3. exit
    :容器停止退出

    ctrl + p + q
    : 容器不停止退出

    docker attach 容器Id or 容器名
    : 进入容器

    dockr start 容器id or 容器名
    : 启动容器

    dockr restart 容器id or 容器名
    : 重启容器

    docker stop 容器id or 容器名
    :停止容器

    docker kill 容器id or 容器名
    : 暴力停止,直接杀死进程(不推荐)

    docker rm 容器id
    : 如果删除正在运行的容器,会报错,如果需要删除,需要强制删除

    docker rm 容器Id -f
    : 强制删除

    docker rm -f $(docker ps -qa)
    : 删除所有容器

Docker 容器与宿主机端口映射

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
: **docker run :**创建一个新的容器并运行一个命令

docker run -i -t -p 宿主机端口:容器应用端口 --name 别名 镜像id
: Docker 容器与宿主机端口映射

options 可选参数

可选参数 参数描述
-d 后台运行容器,并返回容器ID
-i 以交互模式运行容器,通常与 -t 同时使用
-P(大写p) 随机端口映射,容器内部端口随机映射到主机的高端口
-p(小写p) 指定端口映射,格式为:主机(宿主)端口:容器端口
–name 为容器指定一个名称
修改 Docker 默认存储位置,Docker 容器迁移

Docker中默认存放镜像和容器的目录是:/var/lib/docker/ ,/var下比较容易满建议迁移。

我的系统是 Centos7,具体解决步骤如下:

  1. 停止Docker 服务:

    systemctl stop docker; //每个liunx版本的命令不一样。
  2. 在空间充足的磁盘下创建新的docker目录

    mkdir -p /data/docker;	//在根目录下新建
  3. 迁移**/var/lib/docker**目录下面的文件到刚才新建好的 /data/docker下面

    cp -rvf /var/lib/docker/* /data/docker
  4. 修改 Docker 配置

    vim /etc/systemd/system/docker.service.d/devicemapper.conf

  5. 在文件末尾添加:

    --graph=/data/docker

    devicemapper.conf文件的内容如下:

    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd --insecure-registry=私服地址 --graph=/home/docker/lib

    **注意:**如果/etc/systemd/system/docker.service.d/devicemapper.conf,这个路径找不到的话,就新建,新建之后加入内容,没有私服地址的话就可以去掉”–insecure-registry=私服地址”。

  • 重载配置,重启docker

    systemctl daemon-reload;
    systemctl restart docker;
    systemctl enable docker;
  • 启动成功后,确定容器没问题后删除/var/lib/docker/目录中的文件,然后就OK了。

  • 查看容器日志

    docker logs
    : 获取容器的日志

    语法 :

    docker logs [OPTIONS] CONTAINER

    options 可选参数

    可选参数 参数描述
    -f 跟踪日志输出
    –since 显示某个开始时间的所有日志
    -t 显示时间戳
    –tail 仅列出最新N条容器日志
    Docker 容器目录挂载

    ​ 我们 在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以实现宿主机和容器目录的双向数据自动同步。

    ​ 我们可以通过容器目录挂载,能够轻松实现代码上传、配置修改、日志同步等需求。

    语法 :

    docker run -i -t -v /宿主机目录:/容器目录 镜像id

    多目录挂载 :

    docker run -i -t -v /宿主机目录:/容器目录 -v/宿主机目录2:/容器目录2 镜像id

    注意 :如果同步多级目录,可能会出现权限不足的提示,只需要添加 **–privileged=true **来解决挂载的目录没有权限的提示问题。

    Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。

    譬如我要启动一个centos容器,宿主机的/data/hData目录挂载到容器的/cData目录,可通过以下方式指定:

    docker run -i -t -v /data/hData:/cData 470671670cac

    注意点

    1. 容器目录不可以为相对路径
    2. 宿主机目录如果不存在,则会自动生成
    • 点赞
    • 收藏
    • 分享
    • 文章举报
    叫你磊呀 发布了6 篇原创文章 · 获赞 0 · 访问量 429 私信 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: