zoukankan      html  css  js  c++  java
  • 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] 多个镜像之间空格隔开
      
    3. 删除所有镜像
      docker rmi $(docker images -q) : 删除所有镜像

    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 stop $(docker ps -aq) : 停止所有容器

      docker exec -it 容器id /bin/bash : 进入容器

      在使用docker容器时,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要安装vim,可是当你敲apt-get install vim命令时,提示:

      Reading package lists... Done
      Building dependency tree       
      Reading state information... Done
      E: Unable to locate package vim
      

      这时候需要敲:apt-get update,这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
      等更新完毕以后再敲命令:apt-get install vim命令即可。

    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=/data/docker
        

        注意:如果/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. 宿主机目录如果不存在,则会自动生成
  • 相关阅读:
    linux虚拟机上网
    asp 两种方法连接sql sever 并显示
    了解ado.net 的相关内库--读书笔记
    win10固态硬盘分区方法
    sql sever2012安装错误,无效的十六进制字符
    python学习笔记3
    python 学习笔记4
    python学习笔记2
    20189319《网络攻防》第十周作业
    20189319《网络攻防》第九周作业
  • 原文地址:https://www.cnblogs.com/leizzige/p/12232658.html
Copyright © 2011-2022 走看看