zoukankan      html  css  js  c++  java
  • docker常用命令

    一、普通指令

    启动 Docker

    sudo systemctl start docker

    停止 Docker

    sudo systemctl stop docker

    普通重启 Docker

    sudo systemctl restart docker

    修改配置后重启 Docker

    sudo systemctl daemon-reload
    sudo systemctl restart docker

    查看版本

    docker version

    查看Docker 信息

    docker info

    Docker 帮助

    docker --help

    二、镜像命令

    列出本机Docker上已经安装的镜像:

    docker images

    搜索Docker hub上面的镜像

    # 普通搜索,以Tomcat为例
    docker search tomcat
    # 搜索star大于50的镜像实例
    docker search -s 50 tomcat

    从Docker Hub上面下载镜像

    # 以下载tomcat为例
    docker pull tomcat[:version]

    删除本地的某一个镜像

    复制代码
    # 以删除tomcat为例
    docker rmi tomcat[:version]
    # 通过镜像ID删除
    docker rmi -f 镜像ID
    # 通过镜像ID删除多个
    docker rmi -f 镜像名1:TAG 镜像名2:TAG 
    # 删除全部
    # docker images -qa : 获取所有镜像ID
    docker rmi -f $(docker images -qa)
    复制代码

    镜像打包与运行

    复制代码
    #打包一个我们自己的 tomcat
    docker commit -a jianghai -m="package my tomcat" 要打包的镜像ID jianghai/tomcat:1.0
    # -a : 作者名称
    # -m : 打包信息
    
    #启动我们自己打包生成的 tomcat
    docker run -it -p 7700:8080 jianghai/tomcat:1.0
    复制代码

    三、容器命令

    启动容器

    复制代码
    # 新建并进入容器,最后一个为本地容器的ID  
    docker run -it --name="rivercentos001" 9f38484d220f
    
     # 为容器启一个名称
     -name="新容器名称"
     # 后台运行容器,并返回容器ID,也就是启动守护士容器
     -d 
     # 以交互模式运行容器,通常与-t同时使用.
     -i
     # 为容器重新分配一个伪终端,通过与-i同时使用
     -t 
     # 随机端口映射 [大写P]
     -P
     # 端口映射 [小写P]
     -p
    # 数据卷 加参数 ro:容器内的目录只读,不可写
    -v /宿主机绝对路径目录:/容器内目录[:ro] 镜像名
    复制代码

    查看当前正在运行的Docker 容器

    复制代码
    docker ps
    # 参数
    # 列出当前正在运行的以及历史上运行过的
    -a
    # 显示最近创建的容器
    -l
    # 显示最近创建的N个容器
    -n
    # 静默模式,只显示容器编号
    -q
    # 不截断输出
    --no-trunc
    复制代码

    退出容器

    # 退出并停止
    exit
    # 容器不停止退出
    ctrl+P+Q

    启动容器

    docker start 容器ID或容器name

    重启容器

    docker restart 容器ID或容器name

    停止

    docker stop 容器ID或容器name

    强制停止

    docker kill 容器ID或容器name

    删除容器

    复制代码
    # 删除已经停止的容器
    docker rm 容器ID或容器name 
    # 强制删除已经停止或正在运行的容器
    docker rm -f  容器ID或容器name 
    
    一次性删除所有正在运行的容器
    docker rm -f $(docker ps -qa)
    复制代码

    重新进入容器

    # 第一种方式
    docker attach 容器ID或容器名称
    # 第二种方式{隔山打牛式,在宿主机向容器发送命令并获取结果}
    docker exec -t 容器ID或容器名称 ls# 列出文件列表
    # 交互
    docker exec -it rivertomcat  /bin/bash

    从容器内拷贝文件到宿主机

    docker cp 容器ID或容器名称:/文件路径与文件名 宿主机地址
     # 例,拷贝容器river的aaa文件夹下的a.txt到宿主机的当前位置 
     docker cp river:/aaa/a.txt .

     四、日志命令

    复制代码
    docker logs -f -t --tail 10 容器ID或容器名称
    # 加入的时间戳
    -t
    # 跟随最新的日志打印
    -f
    # 输出最后几行的日志
    --tail 行数
    
    # 启动一个centos,并且每两秒在Console输出一个Hello jianghai
    docker run -d --name river centos /bin/sh -c "while true;do echo hello jianghai;sleep 2;done"
    # 查看最后10行的日志
    docker logs -f -t --tail 10 river
    
    #查看容器内的进程 docker top 容器ID或容器名称
    复制代码

    五、DockerFile解析

    FROM 基础镜像,当前新镜像是基于哪个镜像的。

    MAINTAINER 镜像维护者的姓名和邮箱地址。

    RUN 容器构建时需要运行的命令。

    EXPOSE 当前容器对外暴露出的端口。

    WORKDIR 指定在创建容器后,终端默认登陆的进来工作目录,也不是运行并登录进来的当前目录位置。

    ENV 用来构建镜像过程中设置环境变量。

    ADD 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包。

    COPY 类似ADD,但只是复制,不带解压压缩包的功能。

    VOLUME 容器数据卷,用于数据保存和持久化工作。

    CMD 指定一个容器启动时要运行的命令,DockerFile中可以有多个CMD指令,但只有最后一个会生效执行。

    ENTRYPOINT 

    指定一个容器启动时要运行的命令

    ENTRYPOINT的作用和CMD一样,都是在指定容器启动程序及参数

    相当于CMD的升级版本,CMD只能执行一条命令,运行时如果加一些参数是不行的.但如果把CMD替换成ENTRYPOINT就可以在Run镜像的时候在尾部追回指令.

    简单的说如果Run镜像的时候追回了命令,CMD会用追回的覆盖掉旧的,ENTRYPOINT会追回执行。

    ONBUILD 当构建一个被继承的DockerFile时运行命令,父镜像在被子继承后父镜像的onbuild被触发。

     
  • 相关阅读:
    300万PV的ASP.NET网站使用阿里云的配置建议团队
    上周热点回顾(11.4-11.10)团队
    寻人启事:写得一手好代码的你在哪里?团队
    上周热点回顾(10.28-11.3)团队
    上周热点回顾(10.21-10.27)团队
    上周热点回顾(10.14-10.20)团队
    上周热点回顾(10.7-10.13)团队
    Elasticsearch之sense插件的安装(图文详解)
    Kibana里No Marvel Data Found问题解决(图文详解)
    Squirrel的安装(windows上Phoneix可视化工具)
  • 原文地址:https://www.cnblogs.com/MJyc/p/11758576.html
Copyright © 2011-2022 走看看