zoukankan      html  css  js  c++  java
  • Docker基本操作命令

    docker 常用命令如下

    管理命令:
      container   管理容器
      image       管理镜像
      network     管理网络
      node        管理Swarm节点
      plugin      管理插件
      secret      管理Docker secrets
      service     管理服务
      stack       管理Docker stacks
      swarm       管理Swarm集群
      system      查看系统信息
      volume      管理卷
      
      如:docker container ls 显示所有容器
      
    普通命令:
        
      attach     进入一个运行的容器
      build      从一个DockerFile构建镜像
      commit     从容器创建一个镜像
      cp          从容器和主机文件系统之间拷贝文件 
      create      创建一个容器
      diff        检查容器文件系统上的更改
      events      从服务器获取实时事件
      exec        在正在运行的容器中运行命令
      export      将容器的文件系统导出为tar存档
      history     显示镜像的历史记录
      images      查看镜像列表
      import      从归档文件中创建镜像
      info        显示系统范围的信息
      inspect     返回Docker对象的低级信息
      kill        kill运行中的容器
      load        从存档或者STDIN加载镜像
      login       登陆docker镜像仓库
      logout      退出docker镜像仓库
      logs        获取一个容器的日志
      pause       暂停一个或多个容器中的所有进程
      port        查看端口映射或容器的特定映射列表
      ps          查看容器列表
      pull        从镜像仓库拉取镜像
      push        将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
      rename      重命名容器
      restart     重启容器
      rm          删除容器
      rmi         删除镜像
      run         创建一个新的容器并运行一个命令
      save        将指定镜像保存成 tar 归档文件
      search      从Docker Hub搜索镜像
      start       启动容器
      stats       实时显示容器资源使用情况的统计信息
      stop       停止容器
      tag         标记本地镜像,将其归入某一仓库
      top         展示一个容器中运行的进程
      unpause     恢复容器中所有的进程
      update      更新容器配置
      version    显示Docker的版本信息
      wait        阻塞直到容器停止,然后打印退出代码
      
      如:docker images 显示所有镜像

    下面将分别介绍一些常用操作

    docker 拉取并运行一个镜像

    1、下载镜像

    $ docker pull centos 
    

    2、查看已经下载的镜像

    1. $ docker images

    3、运行一个镜像并生成容器

    1.  //运行一个centos镜像,并执行/bin/bash命令
    2.  $ docker run centos /bin/bash
    3.  
       

    输入命令docker ps或者docker container ls查看运行中的容器,发现列表为空,原因是容器在执行完成命令后会自动退出,下面介绍让让容器停留在后台的方法

    1.  $ docker ps
    2.  CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    3.  $ docker container ls
    4.  CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    5.  

    使用命令docker ps -a或者docker container ls -a 查看所用容器,并显示了容器的状态

    1.  $ docker ps -a
    2.  CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    3.  5525373371f3 centos "/bin/bash" 7 minutes ago Exited (0) 7 minutes ago nifty_rosalind
    4.  
       

    docker 让镜像运行停留在后台

    1、启动一个容器并后台运行

    docker run命令 通过增加-i -t参数可以让容器并进入容器

    1.  docker run -i -t centos /bin/bash
    2.  
       

    按 Ctrl + P + Q 退出容器,再用 docker ps 进行查看

    1.  $ docker ps
    2.  CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    3.  61b041e4e063 centos "/bin/bash" 3 minutes ago Up 3 minutes nervous_saha
    4.  
       

    状态显示仍在运行中

    docker 进入一个运行的容器

    1.  $ docker ps
    2.  CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    3.  36afde543eb5 mysql:5.7 "docker-entrypoint.s…" About an hour ago Up About an hour 0.0.0.0:3306->3306/tcp mymysql
    4.  $ docker exec -it 36afde543eb5 /bin/bash
    5.  
       

    -i 保持STDIN打开 -t 分配一个虚拟TTY窗口

    docker 提交一个镜像到镜像仓库

    1、首先到https://hub.docker.com/注册一个账号,保存下用户名密码 2.控制台登陆dockerhub账户

    1.  $ docker login
    2.  输入刚注册的用户名密码

    2、查看镜像

    1.  $ docker images
    2.  REPOSITORY TAG IMAGE ID CREATED SIZE
    3.  redis latest f06a5773f01e 2 days ago 83.4MB
    4.  
       

    3、选择需要上传的镜像,重命名为指定的格式

    $ docker  tag redis username/myredis:v1
    
    1.  username:为自己注册的用户名
    2.  myredis:为自己为镜像取的名字
    3.  v1:为任意设置的版本号

    4、完成上述操作后,即可提交镜像到自己的仓库

    docker push username/myredis:v1
    

    docker 映射文件从宿主机到容器,端口号映射

    1.  //将宿主机的81端口映射到容器的80端口
    2.  //将宿主机的/develop/data卷,映射到容器的/data卷
    3.  $ docker run -i -t -p 81:80 -v /develop/data:/data centos /bin/bash
    4.  
       

    -p:映射端口号 -v:磁盘目录映射

    docker 更改端口号映射

    运行中的容器无法映射新的端口号,也无法更改端口号映射,但可以通过两种方法解决

    1、iptable转发端口

    1.  //查看容器ip
    2.  $ docker inspect 36afde543eb5 | grep IPAddress
    3.  "IPAddress": "172.17.0.2"
    4.  /将主机的8081端口映射到宿主机的8080端口
    5.  $ iptables -t nat -A DOCKER -p tcp --dport 8081 -j DNAT --to-destination 172.17.0.2:8080

    2、先提交容器为镜像,再运行这个容器,同时指定新的端口映射

    1.  //提交容器为镜像
    2.  $ docker commit 9995ffa15f46 mycentos:0.1
    3.  //停止旧的容器
    4.  $ docker stop 9995ffa15f46
    5.  /重新从旧的镜像启动容器
    6.  $ docker run -i -t -p 8081:8080 mycentos:0.1
    7.  
       

    从DockerFile创建镜像

    $ docker build -t myimage:v1 .
    

    -t :指定镜像名称和标签,格式为'name:tag' .: 最后一个点代表当前目录,也可以换成其它的路径

  • 相关阅读:
    NOIP2018游记
    NOIP2018T1DAY1——Road(并查集做法??)
    UVA11021 Tribles——概率dp
    捡石头——(期望递推)
    USACO2008mar-gold牛跑步(第k短路:A-star)
    Java中的异常处理
    Java学习手册
    各种应用层注入手段整理 【转载】
    正则表达式学习
    Run-Time Check Failure #0,The value of ESP was not properly saved 错误解决
  • 原文地址:https://www.cnblogs.com/miaoweiye/p/11950297.html
Copyright © 2011-2022 走看看