• Docker常用命令-全


     

    Docker常用命令-全

    Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
    Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
    Docker 要求 CentOS 系统的内核版本高于 3.10 
     
    查看服务器linux版本
    cat /etc/redhat-release
    查看当前服务内核版本
    uname -r
    查看当前yum服务的版本信息
    yum info yum 
     
    了解一下Systemctl的作用
    Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。
    Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。
     
    使用Curl的方式下载get-docker.sh的脚本到当前目录
     
    在当前目录 执行 ./get-docker.sh  或者  sudo sh get-docker.sh (分别都表示 执行当前docker的安装脚本 )
    启动Docker进程
    sudo systemctl start docker
    关闭当前Docker进程
    sudo systemctl stop docker
    重启Docker进程
    sudo systemctl restart docker
     
    删除Docker CE
    sudo yum remove docker-ce
    sudo rm -rf /var/lib/docker
     
    ----------------------------------Docker进程启动后--------------------------
    默认Docker官方网址为: https://www.docker.com/
    此处使用docker login
    输入账号:arnoldzhao 密码:arnoldzhao 或者 X3x9rXsMyc2QmSX 
    -------------------------------镜像配置---------------------------
    /etc/docker下创建daemon.json文件,并填充json内容为:
    网易的镜像地址
    {
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
    }
    或者(Docker国内的镜像地址)
    {
      "registry-mirrors": ["https://registry.docker-cn.com"]
    }
    最后,重启docker进程 
    systemctl restart docker
    查看当前Docker的信息
    docker info 
    此处可以看到当前docker的注册地址是 index.docker.io,但当前docker的仓库镜像地址已经更改为了上述所设置的,网易云的镜像地址
     
     
    查看当前Docker使用状态,可以得到Docker的一些基本信息以及报错等信息 
    systemctl status docker -l
     
    --------------------------------------------Docker images操作-------------------------------
    从仓库中查找对应的jdk8的镜像信息
    docker search jdk8
    下拉仓库获取hello-word的镜像信息
    docker image pull hello-word
    查看当前Docker所有镜像信息
    docker image ls  或者 docker images
    docker images -q ,其中-q表示列取出当前所有镜像的ID
    docker images -f  since=mongo:3.2 ,其中-f表示进行筛选,此处表示获取所有在mongo:3.2之后建立的镜像信息(-f筛选功能强大,可以去多多查看一些其它的使用方式)
    删除当前镜像信息
    docker image rm [imageName]
    docker image rm $(docker images -q)  通过docker images -q 获取到所有的镜像ID后,进行docker image rm 的批量删除操作
    ------------------------------------------------Docker run操作 及相关Docker命令----------------------------------------
    -d表示设置容器在后台一直运行,-p 表示将主机上的8088端口映射到容器的80端口上, --name表示指定当前启动后容器的名称,此处nginx表示所要启动的镜像
    docker run -d -p 8088:80 --name nginx2019 nginx
    表示查看容器内存所运行的进程
    docker top nginx2019 
    表示查看当前容器的底层记录描述信息
    docker inspect nginx2019
    查看容器标准输出日志
    docker logs -f nginx2019
    停止容器
    docker stop nginx2019
    重启容器
    docker start nginx2019
    移除容器
    docker rm nginx2019 ,或者使用 docker rm $(docker images -q)表示删除所有容器
    进入容器的交互式终端
    docker exec -it nginx2019 /bin/bash
    使用commit将当前容器制作为镜像信息         (使用docker commit将当前容器制作为镜像的方式可以很好的保留容器内的各种日志等信息)
    命令格式:docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
    docker commit  --author "20190725arnold" --message "update index.html" nginx2019 nginx2019:v1
    再次使用docker ps -a即可看到新生成的镜像信息,其中新的镜像仓库信息为:nginx2019,当前版本 tag标签则为 v1,
    将容器内文件与主机文件互相拷贝
    将当前docker-name的容器内文件拷贝到主机的/opt目录下
    docker cp docker-name:/opt/test.js /opt
     
    将当前主机上/opt/test.js文件拷贝到 容器docker-name的opt目录下
    docker cp /opt/test.js docker-name:/opt
     
    目录挂载:使用-v参数,:前面的目录表示主机上的目录,后面的目录表示容器内目录,此处则表示将当前主机的/opt/test目录挂载到容器内的/soft目录下
    docker run -v /opt/test:/soft 
     
    Docker镜像打包(注意:是将当前镜像打包)
    docker save -o 文件名.tar 镜像名称
    docker save 镜像名称>/opt/文件名.tar
     
    将对应的打包镜像加载到对应的Docker镜像中
    docker load < 文件名.tar
     
    -----------------------需注意:save,export以及load和import;这两种打包方式不能被混用------------------------------
     
    Docker容器打包(将已运行的容器内所有文件归档打包到对应的tar文件中)
    docker export  -o nginx.tar 容器名称(nginx-sip)
     
    将所归档的容器文件导入为镜像
    docker import nginx.tar nginx:v1
     
    Docker的三种安装方式(离线安装,Docker存储库安装,脚本安装) https://www.cnblogs.com/zh94/p/11294853.html
     
    --------------------------------------------Dockerfile相关---------------------------------
    docker inspect命令,查看当前镜像的所有元数据信息(查看对应的元数据最重要的是可以看到当前镜像的构建命令以及代码等信息***很重要,可以在刚拉下来一个镜像的时候,在不了解的时候,通过元数据可以很清晰的看到对应的镜像过程和所启动时的执行命令,这对于刚接触一个镜像时可以更快的熟悉起来,而不用尝试着去担心镜像中丢失了那些数据或者作者没有构建进去等问题,毕竟通过元数据一切都一目了然)
    docker inspect 【镜像名称 或者 容器名称】
    使用Docker Build构建对应的Dockfile的镜像信息
    docker build命令说明:docker build [选项] <上下文路径/URL/->;   可参考链接如下:
    其中 -t 表示当前构建后的镜像名称;此处‘.’表示指明当前的上下文路径,也就是当前输入build命令时,当前所在的目录路径;
    当使用copy命令时,COPY ./package.json /app/时,则表示获取当前上下文路径下的JSON文件,然后拷贝到对应的容器APP目录下;
    docker build -t nginx:v3 .
    此处-f 表示指明要构建的Dockerfile文件的路,(如果不指定当前Dockerfile的路径,则默认会读取当前所指定的上下文路径中的Dockerfile作为构建文件而构建),‘.’ 还是用来指定当前的上下文路径是哪里,此处使用'.',表示当前上下文路径为当前使用build命令时,所在的文件目录路径 。
    docker build -t nginx:v3 -f /opt/Dockerfile . 
    -----------------------------------Dockerfile语法相关-----------------------
    COPY复制文件:语法:COPY [--chown=<user>:<group>] <源路径>... <目标路径>
    表示将当前主机服务上下文路径中的 package.json文件,拷贝到对应的容器/opt/app目录下,中间空格隔开,表示语法规范,其中如果所指定的目标路径在对应容器中不存在时,则容器将会自动创建;除此之外,拷贝到容器内的文件,也可以直接使用--chown来设置当前文件的权限;
    COPY package.json /opt/app/ 
     
  • 相关阅读:
    一篇图看清Java中的各种Queue
    使用尾递归计算阶乘
    使用 Sonar 检测代码质量
    jsessionid 导致重定向404的问题
    Java8之——简洁优雅的Lambda表达式
    支付宝手机网站支付开发指引
    Intellij Idea 编辑器使用之 安装、破解 版本15.0.1
    虚拟机启动linux系统报错,此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态
    META-INF文件夹是干啥的,META-INF文件夹的作用, META-INF文件夹能删吗
    一道Integer面试题引发的对Integer的探究
  • 原文地址:https://www.cnblogs.com/zh94/p/11922889.html
Copyright © 2020-2023  润新知