zoukankan      html  css  js  c++  java
  • Docker工作管理中实用操作

                              “build once ,run anywhere

                                          一次构建,随处运行

     

    查看docker版本选择(列出)

    #yum list docker-ce --show-duplicates

    #docker  info               

    //查看详细信息

    # docker login dcoker.io    

    //登陆docker.ios(dockerhub官网)

    #docker tag  6dbb9cc54074  docker.io/likun0520/alpine:v3

    //加标签

    #docker push ID (注意ID中要是登陆仓库的用户名)

    //上传到仓库 例子:docker push likun123123/alpine:v1 (likun123123是hub上的账号名)

    #docker rmi   -f ID

     #删除镜像(强制:-f)

     

                                         容    器


    #列出本地容器进程

    #docker ps     查看容器(活的)

    #docker ps -a  可以查看死的和活的

    #启动容器(run)

    # docker run -ti likun123123/alpine:v1 /bin/sh    

    //交互式启动容器,一旦退出,容器也会停止

    # docker run --rm likun123123/alpine:v1 /bin/echo hello   

    //加--rm意思是,运行容器后自动退出 ,这里是让容器输出hello后,自己退出

    # docker run -d --name myalpinel likun123123/alpine:v1 /bin/sleep 300

    //“-d”是让他在后台运行,“--name”给容器建立一个名,“/bin/sleep 300”让容器运行5分钟,运行过后,容器会自己挂掉。

    注意小知识点:docker里容器运行,实际上在宿主机上也可以看到容器的进程(ps aux|grep /bin/sleep)

    # docker exec -ti 6dbb9cc54074 /bin/sh

    //使用交互型方式进入容器中去

    #docker stop 容器的ID

    //停止容器

    #docker rm  容器名 (-f:强制删除运行中的容器)

    //通过docker ps -a 查出容器名 ,删除容器

    -----------------------------------------------------------实际使用中docker基本操作------------------------------

    补充使用循环删除宿主机上所用已经退出的容器

    # for i in `docker ps -a |grep -i exit|awk '{print $1}'`;do docker rm -f $i;done

    //经常用到的,非常实用。

     

    补充通过交互式方式进入容器,添加修改或者删除保存的一些文件,等容器消亡后,也会随着消失。原因:修改只是在容器的读写层修改,是不能固化的。如若想保存自己在容器中修改的内容,需要在容器运行中,再另新建一个images(镜像),类似虚拟机快照的操作,其实就是再创建一个镜像即可。

    # docker commit -p myalpine likun123123/alpine:v2

    //创建镜像:“myalpine”是容器名,后面是新镜像的标签

     

    补充:导入与导出镜像基本流程

    # docker images

    //查看要导出的镜像

    # docker save af7f24ec059a > alpine:v1.txt.tar

    //使用“save”导出镜像到当前目录下名为alpine:v1.txt.tar

    # docker rmi -f af7f24ec059a

    //删除镜像

    # docker load < alpine:v1.txt.tar

    //在当前目录下导入刚刚导出的包

    # docker tag  

    //给导入的包做标签(新导入的包,会没有标签,需要自己做标签)

     

    补充查看容器的日志

    # docker ps -a

    //先确认要查询容器的ID号

    # docker logs 容器的ID号

    //使用“logs”查询容器的日志(如果后加-f,将动态输出日志)

     -----------------------------------------------------实际使用中高级(重要的)操作--------------------------------

    Docker高级操作:

      1,映射端口

      2,挂载数据卷

      3,传递环境变量!!!!

      4,容器内安装软件工具

    1,启动nginx容器并映射指定端口

    # docker run --rm --name mynginx -d -p81:80 likun123123/nginx:v1

    //使用-p来映射端口,“:”左边是宿主机的端口,右边是容器内映射的端口

    2,将文件挂载到nginx容器里

     例子:将百度网页链接到nginx里

    # mkdir html

    # wget www.baidu.com -O index.html

    # docker run -d --rm --name nginxmy -d -p82:80  -v/root/html:/usr/share/nginx/html likun123123/nginx:v1

    //注意端口不要冲突,“-v”左边是宿主机百度网页的目录,右边是容器里nginx的网页目录

    # docker ps -a

    查看挂载的详细信息

    # docker inspect 4f2d55b3184b |grep share

    3,传递环境变量!!!!!!

    非常重要,生产环境下经常用到,因为一旦可以给容器加环境变量,就相当于云原生一样,操作非常简单,但是经常用到,所以它比上两个高级操作还要重要

    # docker run --rm -e E_OPS=abc likun123123/nginx:v1 printenv

    //这里给容器传递环境变量,用”-e” 后面加变量,可以-e对应多个变量,printenv是输出打印出变量(可以不加,主要方便看)

    4,容器内部安装工具

    首先进入容器里(mynginx是容器名,/bin/bash是命令)

    # docker exec -it  mynginx  /bin/bash

    进去后,什么系统做什么动作(yum/apt-get/apt)

    装完后,要是固化,还是需要做一个镜像,最好上传到dockerhub库里

    # docker commit -p mynginx  likun123123/nginx:v1.1

    # docker push likun123123/nginx:v1.1

    以上是docker在实际工作中经常遇到的操作!!!要牢记!!!!


                                                                          帮    助
    docker中使用的命令参数大集(#docker --help)

    Commands:
      attach  Attach local standard input, output, and error streams to a running container
      build     Build an image from a Dockerfile
      commit    Create a new image from a container's changes
      cp            Copy files/folders between a container and the local filesystem
      create      Create a new container
      diff          Inspect changes to files or directories on a container's filesystem
      events      Get real time events from the server
      exec         Run a command in a running container
      export      Export a container's filesystem as a tar archive
      history     Show the history of an image
      images      List images
      import      Import the contents from a tarball to create a filesystem image
      info          Display system-wide information
      inspect     Return low-level information on Docker objects
      kill          Kill one or more running containers
      load        Load an image from a tar archive or STDIN
      login       Log in to a Docker registry
      logout      Log out from a Docker registry
      logs        Fetch the logs of a container
      pause       Pause all processes within one or more containers
      port        List port mappings or a specific mapping for the container
      ps          List containers
      pull        Pull an image or a repository from a registry
      push        Push an image or a repository to a registry
      rename      Rename a container
      restart     Restart one or more containers
      rm          Remove one or more containers
      rmi         Remove one or more images
      run         Run a command in a new container
      save      Save one or more images to a tar archive (streamed to STDOUT by default)
      search      Search the Docker Hub for images
      start         Start one or more stopped containers
      stats        Display a live stream of container(s) resource usage statistics
      stop         Stop one or more running containers
      tag           Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
      top          Display the running processes of a container
      unpause     Unpause all processes within one or more containers
      update      Update configuration of one or more containers
      version     Show the Docker version information
      wait        Block until one or more containers stop, then print their exit codes
    没有处理不了的问题,只有不能处理的人
  • 相关阅读:
    E百科 | 第2期 扒一扒能加速互联网的QUIC协议
    阿里的 RocketMQ 如何让双十一峰值之下 0 故障?
    阿里巴巴开源容器镜像加速技术
    Fluid — 云原生环境下的高效“数据物流系统”
    一站式云原生智能告警运维平台——SLS新版告警发布!
    重磅官宣:Nacos2.0 发布,性能提升 10 倍
    阿里云高级技术专家周哲:阿里云边缘云原生应用实践
    互联网泛娱乐直播安全的解决之道
    货运物流移动端解决方案:为货运物流行业打造高性能、高粘性的“双端”触点
    SpringMVC(十四) RequestMapping ModelAndView
  • 原文地址:https://www.cnblogs.com/123456likun/p/14793927.html
Copyright © 2011-2022 走看看