Docker 基本命令和使用

Posted leizzige

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 基本命令和使用相关的知识,希望对你有一定的参考价值。

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,默认下载最新版本 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 配置

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

    2. 在文件末尾添加:--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=私服地址”。

  5. 重载配置,重启docker

    systemctl daemon-reload;
    systemctl restart docker;
    systemctl enable docker;
  6. 启动成功后,确定容器没问题后删除/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. 宿主机目录如果不存在,则会自动生成

以上是关于Docker 基本命令和使用的主要内容,如果未能解决你的问题,请参考以下文章

linux_docker入门

Docker 基本命令和使用

Docker基本使用命令

html PHP代码片段: - AJAX基本示例:此代码演示了使用PHP和JavaScript实现的基本AJAX功能。

003 docker的基本命令的使用

Docker基本命令与使用 —— Docker镜像与仓库