«

docker安装及命令

LiHaiYang 发布于 阅读:1019 docker


[TOC]

docker安装

    [root@dig-192-168-9-19 harbor]# rpm -qa |grep docker    #查看是否安装过docker
    docker-ce-cli-19.03.12-3.el7.x86_64
    docker-ce-19.03.12-3.el7.x86_64
    [root@dig-192-168-9-19 harbor]#
        #有输出证明之前安装过docker需要使用rpm -e --nodeps加上输出的全名
    [root@dig-192-168-9-19 harbor]# rpm -e --nodeps docker-ce-cli-19.03.12-3.el7.x86_64 docker-ce-19.03.12-3.el7.x86_64 #卸载之前安装的docker
    [root@dig-192-168-9-19 harbor]# cd /etc/yum.repos.d/  #进入yum源目录
    [root@dig-192-168-9-19 harbor]# mkdir a   #创建备份目录
    [root@dig-192-168-9-19 harbor]# mv * a  #把所有原来的yum源移动到备份目录
    [root@dig-192-168-9-19 harbor]# wget https://download.docker.com/linux/centos/docker-ce.repo   #下载docker官方的yum源
    [root@dig-192-168-9-19 harbor]# yum -y install docker-ce 
    #出现以下结果即为安装成功:
          Installing : 1:docker-ce-cli-19.03.12-3.el7.x86_64            1/2 
          Installing : 3:docker-ce-19.03.12-3.el7.x86_64                2/2 
          Verifying  : 1:docker-ce-cli-19.03.12-3.el7.x86_64            1/2 
          Verifying  : 3:docker-ce-19.03.12-3.el7.x86_64                2/2 
    Installed:
          docker-ce.x86_64 3:19.03.12-3.el7                             
    Dependency Installed:
          docker-ce-cli.x86_64 1:19.03.12-3.el7                                     
    Complete!
    [root@dig-192-168-9-19 harbor]# find / -name "docker.service" #查找配置文件
    /usr/lib/systemd/system/docker.service#配置文件的路径
    [root@dig-192-168-9-19 harbor]# vim /usr/lib/systemd/system/docker.service#编辑配置文件找到ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock在这行后面加上--registry-mirror=https://kfwkfulq.mirror.aliyuncs.com(配置阿里云加速器,不配置可能会导致无法pull镜像) --graph=/data/docker(配置容器路径)。修改完成后保存退出
#查看自己的阿里云加速器地址步骤为:登录阿里云>>>点击控制台>>>点击左上角的三个->>>点击产品与服务>>>找到容器镜像服务并点击>>>在左侧控制栏找到镜像加速器即可看到加速器地址
    [root@dig-192-168-9-19 harbor]# systemctl daemon-reload  #更新配置,每次修改完docker配置文件都要执行
    [root@dig-192-168-9-19 harbor]# systemctl start docker #启动docker
    [root@dig-192-168-9-19 harbor]# systemctl status docker #查看docker状态,状态为active (running)即为启动成功

docker基本操作

    [root@dig-192-168-9-19 harbor]# docker pull 192.168.9.19/coal/coal:0.01 #下载镜像,如果报以下错误则需要在/etc/docker/daemon.json内加入配置"insecure-registries": ["192.168.9.19"],如果没有这个文件就新建。配置完成后重新加载配置文件重启docker即可
    Error response from daemon: Get https://192.168.9.19/v2/: dial tcp 192.168.9.19:443: connect: connection refused
    [root@dig-192-168-9-19 harbor]# cat /etc/docker/daemon.json 
    {
      "insecure-registries": [
        "192.168.9.19"
      ]
    }
    [root@dig-192-168-9-19 harbor]# systemctl daemon-reload
    [root@dig-192-168-9-19 harbor]# service docker restart
    #如果是私有镜像仓库需要登录
    [root@dig-192-168-9-19 harbor]# docker login 192.168.9.19  #登录docker,出现以下说明docker已经登录成功
    Username: admin
    Password: 
    WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store

    Login Succeeded
    [root@dig-192-168-9-19 harbor]# docker pull 192.168.9.19/coal/coal:0.01  #下载镜像,出现以下内容说明下载成功
    0.01: Pulling from coal/coal
    df20fa9351a1: Pull complete 
    194aa948f3c5: Pull complete 
    b7dbc99a6285: Pull complete 
    Digest: sha256:ba157627024d48c0a4d49a073f14be37a857d6acc1d3b6834973eac1970e21ca
    Status: Downloaded newer image for 192.168.9.19/coal/coal:0.01
    192.168.9.19/coal/coal:0.01
    [root@dig-192-168-9-19 harbor]# docker images
    REPOSITORY#仓库/下载地址             TAG#版本号             IMAGE ID#镜像ID      CREATED#创建时间       SIZE#镜像大小
    192.168.9.19/coal/coal              0.01                   17bd7c8d6a09        24 hours ago            322MB
    [root@dig-192-168-9-19 harbor]# docker search jdk #查看所有jdk镜像
    NAME                                 DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
    primetoninc/jdk                      Oracle jdk 1.8, 1.7                             18                                      [OK]
    ascdc/jdk8                           jdk8                                            9                                       [OK]
    codenvy/jdk8_maven3_tomcat8          JDK 8, Maven 3, Tomcat 8                        9                                       [OK]
    codenvy/jdk7_tomcat7                 Dockerfile https://github.com/codenvy/docker…   7                                       
    kdvolder/jdk8                                                                        6                                       
    gmaslowski/jdk                       Oracle JDK8                                     6                                       
    ringcentral/jdk                      an alpine Linux image included glibc and Ora…   5                                       
    openkbs/jdk-mvn-py3                  Java 8 OpenJDK + Maven  + Python 3+ pip + no…   4                                       [OK]
    codenvy/jdk7                         Dockerfile https://github.com/codenvy/docker…   3                                       
    codenvy/jdk7_vnc                     Dockerfile https://github.com/codenvy/docker…   3                                       
    codenvy/jdk7_jboss7                  Dockerfile https://github.com/codenvy/docker…   2                                       
    codenvy/jdk7_jetty9                  Dockerfile https://github.com/codenvy/docker…   2                                       
    payneteasy/jdk-8                     Java 8 for using with gitlab-ci                 1                                       [OK]
    andonescu/jdk-8-node-docker-gcp      jdk8 node docker gcp                            1                                       
    ukhydrographicoffice/jdk8-python36   Build image that contains bash, jdk 8 and py…   0                                       
    jdk1/php-redis-modified                                                              0                                       
    ping2ravi/jdk                        All Java/JDK Versions                           0                                       [OK]
    wealthsimple/jdk                                                                     0                                       
    guligo/jdk-maven-ant                 Tool stack consisting of Oracle JDK, Maven a…   0                                       [OK]
    uquote/jdk8-tomee1.7.3-plume         Apache Tomee Plume with Oracle JDK 8 on Cent…   0                                       
    infinitenature/jdk                   JDK Images for all jdks jabba supports          0                                       
    dwetzel/jdk-ant                      JDK8 + ANT                                      0                                       [OK]
    payneteasy/jdk-8-js                  jdk-8, maven and javascript                     0                                       [OK]
    king019/jdk                          jdk                                             0                                       
    codenvy/jdk7_glassfish4              Dockerfile https://github.com/codenvy/docker…   0 
    [root@dig-192-168-9-19 harbor]# docker images #查看本地下载的镜像
    REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
    192.168.9.19/coal/coal   0.01                17bd7c8d6a09        24 hours ago        322MB
    [root@dig-192-168-9-19 harbor]# docker rmi 17bd7c8d6a09  #删除镜像docker rmi为删除命令17bd7c8d6a09为镜像ID
    Untagged: 192.168.9.19/coal/coal:0.01
    Untagged: 192.168.9.19/coal/coal@sha256:ba157627024d48c0a4d49a073f14be37a857d6acc1d3b6834973eac1970e21ca
    Deleted: sha256:17bd7c8d6a09371363d2ca1ac91f620663f789584f43cd1d7312dc5888ef2d80
    Deleted: sha256:68917e5f46b829e47dd2ca43ad7cac9e4c3b7d53bf1d0643ead597adebd272a5
    Deleted: sha256:6019670350bae38cc67f0d559841848cfd16a307cb1a88658d923b68df66aa1d
    Deleted: sha256:50644c29ef5a27c9a40c393a73ece2479de78325cae7d762ef3cdc19bf42dd0a
    [root@dig-192-168-9-19 harbor]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    [root@dig-192-168-9-19 harbor]# 
[root@dig-192-168-19-14 data]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                          PORTS               NAMES
9d563441524f        mysql_test:5.7      "docker-entrypoint.s…"   10 minutes ago      Exited (0) About a minute ago                       mysqld_prod
98e2f80a1ab5        9d9bfc1c7cb2        "/usr/local/bin/clic…"   5 months ago        Exited (137) 2 months ago                           hopeful_kirch
[root@dig-192-168-19-14 data]# docker rm 9d563441524f
9d563441524f
[root@dig-192-168-19-14 data]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
98e2f80a1ab5        9d9bfc1c7cb2        "/usr/local/bin/clic…"   5 months ago        Exited (137) 2 months ago                       hopeful_kirch
    [root@dig-192-168-9-19 harbor]# ls
    abc.txt  anaconda-ks.cfg  get-pip.py  googe  install-google-chrome.sh  jdk-8u91-linux-x64.tar.gz  recommended.yaml
    [root@dig-192-168-9-19 harbor]# docker images
    REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
    192.168.9.19/coal/coal   0.01                17bd7c8d6a09        24 hours ago        322MB
    [root@dig-192-168-9-19 harbor]# docker save 192.168.9.19/coal/coal:0.01 > coal.jar #docker save为固定格式。192.168.9.19/coal/coal:0.01为镜像名对应和对应的版本号
    [root@dig-192-168-9-19 harbor]# ls
    abc.txt  anaconda-ks.cfg  coal.jar  get-pip.py  googe  install-google-chrome.sh  jdk-8u91-linux-x64.tar.gz  recommended.yaml
    [root@dig-192-168-9-19 harbor]# ls
    abc.txt  anaconda-ks.cfg  get-pip.py  googe  install-google-chrome.sh  jdk-8u91-linux-x64.tar.gz  recommended.yaml
    [root@dig-192-168-9-19 harbor]# docker images
    REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
    192.168.9.19/coal/coal   0.01                17bd7c8d6a09        24 hours ago        322MB
    [root@dig-192-168-9-19 harbor]# docker save 192.168.9.19/coal/coal:0.01 > coal.jar   #docker save为固定格式。192.168.9.19/coal/coal:0.01为镜像名对应和对应的版本号
    [root@dig-192-168-9-19 harbor]# ls
    abc.txt  anaconda-ks.cfg  coal.jar  get-pip.py  googe  install-google-chrome.sh  jdk-8u91-linux-x64.tar.gz  recommended.yaml
    [root@dig-192-168-9-19 harbor]# docker images #查看本地下载的镜像
    REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
    192.168.9.19/coal/coal   0.01                17bd7c8d6a09        24 hours ago        322MB
    [root@dig-192-168-9-19 harbor]# docker rmi 17bd7c8d6a09  #删除镜像docker rmi为删除命令17bd7c8d6a09为镜像ID
    Untagged: 192.168.9.19/coal/coal:0.01
    Untagged: 192.168.9.19/coal/coal@sha256:ba157627024d48c0a4d49a073f14be37a857d6acc1d3b6834973eac1970e21ca
    Deleted: sha256:17bd7c8d6a09371363d2ca1ac91f620663f789584f43cd1d7312dc5888ef2d80
    Deleted: sha256:68917e5f46b829e47dd2ca43ad7cac9e4c3b7d53bf1d0643ead597adebd272a5
    Deleted: sha256:6019670350bae38cc67f0d559841848cfd16a307cb1a88658d923b68df66aa1d
    Deleted: sha256:50644c29ef5a27c9a40c393a73ece2479de78325cae7d762ef3cdc19bf42dd0a
    [root@dig-192-168-9-19 harbor]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    [root@dig-192-168-9-19 harbor]# docker load -i coal.jar #docker load -i为固定格式,coal.jar为刚才save导出的文件
    50644c29ef5a: Loading layer [==================================================>]  5.845MB/5.845MB
    51fac5ab9401: Loading layer [==================================================>]  240.6MB/240.6MB
    b9434bf6232b: Loading layer [==================================================>]  76.69MB/76.69MB
    Loaded image: 192.168.9.19/coal/coal:0.01
    [root@dig-192-168-9-19 harbor]# docker images
    REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
    192.168.9.19/coal/coal   0.01                17bd7c8d6a09        25 hours ago        322MB
    [root@dig-192-168-9-19 harbor]# 
    [root@dig-192-168-9-19 harbor]# docker images  #查看镜像
    REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
    192.168.9.19/coal/coal   0.01                17bd7c8d6a09        25 hours ago        322MB
    [root@dig-192-168-9-19 harbor]# docker tag 17bd7c8d6a09 coal:0.01 #修改镜像名称和版本号,docker tag的作用是标记本地镜像,将其归入某一仓库,也可用于改名。17bd7c8d6a09为镜像ID,coal:0.01为你要修改的镜像名称和版本
    [root@dig-192-168-9-19 harbor]# docker images
    REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
    192.168.9.19/coal/coal   0.01                17bd7c8d6a09        25 hours ago        322MB
    coal                     0.01                17bd7c8d6a09        25 hours ago        322MB
    [root@dig-192-168-9-19 harbor]# docker rmi 192.168.9.19/coal/coal:0.01  #删除原来的镜像
    Untagged: 192.168.9.19/coal/coal:0.01
    [root@dig-192-168-9-19 harbor]# docker images   #查看本地镜像
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    coal                0.01                17bd7c8d6a09        25 hours ago        322MB
    [root@dig-192-168-9-19 harbor]#
    [root@dig-192-168-9-19 harbor]# docker images  #查看本地镜像
    REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
    coal                        0.01                17bd7c8d6a09        25 hours ago        322MB
    [root@dig-192-168-9-19 harbor]# docker tag coal:0.01 192.168.9.19/coal/coal:0.02  #把镜像的名称和对应的版本改为   docker仓库地址:版本。注意docker push的镜像名称需要和镜像仓库的地址相同
    [root@dig-192-168-9-19 harbor]# docker images
    REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
    192.168.9.19/coal/coal      0.02                17bd7c8d6a09        25 hours ago        322MB
    coal                        0.01                17bd7c8d6a09        25 hours ago        322MB
    [root@dig-192-168-9-19 harbor]# docker push 192.168.9.19/coal/coal:0.02  #开始推送,出现以下内容即为推送完成,可前往私有仓库进行查看
    The push refers to repository [192.168.9.19/coal/coal]
    b9434bf6232b: Layer already exists 
    51fac5ab9401: Layer already exists 
    50644c29ef5a: Layer already exists 
    0.02: digest: sha256:ba157627024d48c0a4d49a073f14be37a857d6acc1d3b6834973eac1970e21ca size: 953
    [root@dig-192-168-9-19 harbor]# docker images
    REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
    192.168.9.19/coal/coal      0.02                17bd7c8d6a09        25 hours ago        322MB
    coal                        0.01                17bd7c8d6a09        25 hours ago        322MB
    [root@dig-192-168-9-19 harbor]# docker pull centos
    Using default tag: latest
    latest: Pulling from library/centos
    6910e5a164f7: Pull complete 
    Digest: sha256:4062bbdd1bb0801b0aa38e0f83dece70fb7a5e9bce223423a68de2d8b784b43b
    Status: Downloaded newer image for centos:latest
    docker.io/library/centos:latest
    [root@dig-192-168-9-19 harbor]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    coal                0.01                17bd7c8d6a09        25 hours ago        322MB
    centos              latest              831691599b88        13 days ago         215MB
    [root@dig-192-168-9-19 harbor]# docker run -d -p 5001:8080 -p 5002:8080 -it --name myCentos 831691599b88 /bin/bash
        #-d 后台运行
        #–name 容器名
        #-p 把:前面的本地服务器端口映射到容器的端口可以一次映射多个但是不能端口重复
        #831691599b88:镜像ID
    d8bfe9adb3bc79f028a3288f5592e4e454d6cce978c3c14a4ed714398947c7d3
    [root@dig-192-168-9-19 harbor]# docker ps -a#查看所有容器
    CONTAINER ID#容器ID IMAGE#镜像ID         COMMAND             CREATED              STATUS#运行状态              PORTS#端口映射                               NAMES#容器名称
    d8bfe9adb3bc        831691599b88        "/bin/bash"         About a minute ago   Up About a minute   0.0.0.0:5001->8080/tcp, 0.0.0.0:5002->8080/tcp   myCentos
    [root@dig-192-168-9-19 harbor]#
    [root@dig-192-168-9-19 harbor]# docker ps -a #查看所有容器
    CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                                            NAMES
    d8bfe9adb3bc        831691599b88        "/bin/bash"         About a minute ago   Up About a minute   0.0.0.0:5001->8080/tcp, 0.0.0.0:5002->8080/tcp   myCentos
    [root@dig-192-168-9-19 harbor]# docker stop myCentos #停止myCentos容器
    myCentos
    [root@dig-192-168-9-19 harbor]# docker ps -a  #查看所有容器
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
    d8bfe9adb3bc        831691599b88        "/bin/bash"         7 minutes ago       Exited (0) 10 seconds ago                       myCentos
    [root@dig-192-168-9-19 harbor]# docker ps -a  #查看所有容器
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
    d8bfe9adb3bc        831691599b88        "/bin/bash"         7 minutes ago       Exited (0) 10 seconds ago                       myCentos
    [root@dig-192-168-9-19 harbor]# docker start myCentos  #启动myCentos容器
    myCentos
    [root@dig-192-168-9-19 harbor]# docker ps -a    #查看所有容器
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                            NAMES
    d8bfe9adb3bc        831691599b88        "/bin/bash"         8 minutes ago       Up 4 seconds        0.0.0.0:5001->8080/tcp, 0.0.0.0:5002->8080/tcp   myCentos
    [root@dig-192-168-9-19 harbor]# ip a  #进入前先查看本机IP信息
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 64:00:6a:52:5c:17 brd ff:ff:ff:ff:ff:ff
        inet 192.168.9.45/24 brd 192.168.9.255 scope global noprefixroute em1
           valid_lft forever preferred_lft forever
        inet6 fe80::4fc3:dbd5:c5d6:9557/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
        link/ether 02:42:65:9e:0f:9c brd ff:ff:ff:ff:ff:ff
        inet 10.88.91.1/24 scope global docker0
           valid_lft forever preferred_lft forever
        inet6 fe80::42:65ff:fe9e:f9c/64 scope link 
           valid_lft forever preferred_lft forever
    4: flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc pfifo_fast state UNKNOWN group default qlen 500
        link/none 
        inet 10.88.91.0/16 scope global flannel0
           valid_lft forever preferred_lft forever
        inet6 fe80::e3b0:db37:1042:c549/64 scope link flags 800 
           valid_lft forever preferred_lft forever
    [root@dig-192-168-9-19 harbor]# docker attach myCentos  #进入容器。docker attach为固定格式,myCentos为容器名也可以写成容器ID
    [root@d8bfe9adb3bc /]# ls
    bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    [root@d8bfe9adb3bc /]# cd 
    [root@d8bfe9adb3bc ~]# ls
    anaconda-ks.cfg  anaconda-post.log  original-ks.cfg
    [root@d8bfe9adb3bc ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    7: eth0@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
        link/ether 02:42:0a:58:5b:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 10.88.91.2/24 brd 10.88.91.255 scope global eth0
           valid_lft forever preferred_lft forever
    [root@d8bfe9adb3bc ~]# exit   #退出容器,退出后容器会自动关闭可以使用Ctrl+P+Q退出,这样退出后仍然会保持容器运行
    exit
    [root@dig-192-168-9-19 harbor]# docker ps -a #查看所有容器
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                            NAMES
    d8bfe9adb3bc        831691599b88        "/bin/bash"         48 minutes ago      Up 3 minutes        0.0.0.0:5001->8080/tcp, 0.0.0.0:5002->8080/tcp   myCentos
    [root@dig-192-168-9-19 ~]# docker attach myCentos #进入容器
    [root@d8bfe9adb3bc ~]# ls  #查看文件和目录
    anaconda-ks.cfg  anaconda-post.log  original-ks.cfg
    [root@d8bfe9adb3bc ~]# pwd #查看当前路径
    /root
    [root@d8bfe9adb3bc ~]# read escape sequence  #Ctrl+P+Q退出容器
    [root@dig-192-168-9-19 ~]# docker cp coal.jar myCentos:/root #把coal.jar复制到容器内,docker cp为复制命令,coal.jar为本地的文件名称,myCentos:/root为容器名称和要把文件放到容器内的那个目录下
    [root@dig-192-168-9-19 ~]# docker attach myCentos #重新进入容器
    [root@d8bfe9adb3bc ~]# ls  #查看文件和目录
    anaconda-ks.cfg  anaconda-post.log  coal.jar  original-ks.cfg
    [root@d8bfe9adb3bc ~]# pwd  #查看当前路径
    /root
    [root@d8bfe9adb3bc ~]# 
    [root@dig-192-168-9-19 harbor]# docker top myCentos
    UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
    root                2443                2426                0                   15:44               pts/0               00:00:00            /bin/bash
    [root@dig-192-168-9-19 harbor]# 
    [root@dig-192-168-9-19 k8s]# cat Dockerfile  #查看Dockerfile
    FROM jdk:8  #表示需要镜像名为jdk tag为8的镜像支持
    ADD coal_seam_monitoring-0.0.1.jar app.jar  #把coal_seam_monitoring-0.0.1.jar改名为app.jar
    EXPOSE 9010               #暴露端口
    ENTRYPOINT ["java","-jar","app.jar"]      #启动命令
    [root@dig-192-168-9-19 k8s]# ls 
    coal_seam_monitoring-0.0.1.jar  Dockerfile
    [root@dig-192-168-9-19 k8s]# pwd
    /data/k8s
    [root@dig-192-168-9-19 k8s]# docker images #查看现在的本地镜像
    REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
    192.168.9.19/jdk/jdk        8                   a39488180474        3 days ago          245MB
    jdk                         8                   a39488180474        3 days ago          245MB
    [root@dig-192-168-9-19 k8s]# docker build -t coal:0.1 . #docker build 为构建镜像的命令,-t指定镜像名和标签,.为当前路径
    Sending build context to Docker daemon  76.69MB
    Step 1/4 : FROM jdk:8
     ---> a39488180474
    Step 2/4 : ADD coal_seam_monitoring-0.0.1.jar app.jar
     ---> ff881bf8c6a4
    Step 3/4 : EXPOSE 9010
     ---> Running in 4e8453ef2f85
    Removing intermediate container 4e8453ef2f85
     ---> addfa5b20fde
    Step 4/4 : ENTRYPOINT ["java","-jar","app.jar"]
     ---> Running in b025872858b1
    Removing intermediate container b025872858b1
     ---> 43380628d27f
    Successfully built 43380628d27f
    Successfully tagged coal:0.1
    [root@dig-192-168-9-19 k8s]# docker images
    REPOSITORY                  TAG                 IMAGE ID            CREATED              SIZE
    coal                        0.1                 43380628d27f        About a minute ago   322MB
    192.168.9.19/jdk/jdk        8                   a39488180474        3 days ago           245MB
    jdk                         8                   a39488180474        3 days ago           245MB
--build-arg=[] :设置镜像创建时的变量;

--cpu-shares :设置 cpu 使用权重;

--cpu-period :限制 CPU CFS周期;

--cpu-quota :限制 CPU CFS配额;

--cpuset-cpus :指定使用的CPU id;

--cpuset-mems :指定使用的内存 id;

--disable-content-trust :忽略校验,默认开启;

-f :指定要使用的Dockerfile路径;

--force-rm :设置镜像过程中删除中间容器;

--isolation :使用容器隔离技术;

--label=[] :设置镜像使用的元数据;

-m :设置内存最大值;

--memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;

--no-cache :创建镜像的过程不使用缓存;

--pull :尝试去更新镜像的新版本;

--quiet, -q :安静模式,成功后只输出镜像 ID;

--rm :设置镜像成功后删除中间容器;

--shm-size :设置/dev/shm的大小,默认值是64M;

--ulimit :Ulimit配置。

--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

--network: 默认 default。在构建期间设置RUN指令的网络模式

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        阻塞直到容器停止,然后打印退出代码
-d, --detach=false, 指定容器运行于前台还是后台,默认为false
-i, --interactive=false, 打开STDIN,用于控制台交互
-t, --tty=false, 分配tty设备,该可以支持终端登录,默认为false
-u, --user="", 指定容器的用户
-a, --attach=[], 登录容器(必须是以docker run -d启动的容器)
-w, --workdir="", 指定容器的工作目录
-c, --cpu-shares=0, 设置容器CPU权重,在CPU共享场景使用
-e, --env=[], 指定环境变量,容器中可以使用该环境变量
-m, --memory="", 指定容器的内存上限
-P, --publish-all=false, 指定容器暴露的端口
-p, --publish=[], 指定容器暴露的端口
-h, --hostname="", 指定容器的主机名
-v, --volume=[], 给容器挂载存储卷,挂载到容器的某个目录
--volumes-from=[], 给容器挂载其他容器上的卷,挂载到容器的某个目录
--cap-add=[], 添加权限,权限清单详见:http://linux.die.net/man/7/capabilities
--cap-drop=[], 删除权限,权限清单详见:http://linux.die.net/man/7/capabilities
--cidfile="", 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法
--cpuset="", 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU
--device=[], 添加主机设备给容器,相当于设备直通
--dns=[], 指定容器的dns服务器
--dns-search=[], 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件
--entrypoint="", 覆盖image的入口点
--env-file=[], 指定环境变量文件,文件格式为每行一个环境变量
--expose=[], 指定容器暴露的端口,即修改镜像的暴露端口
--link=[], 指定容器间的关联,使用其他容器的IP、env等信息
--lxc-conf=[], 指定容器的配置文件,只有在指定--exec-driver=lxc时使用
--name="", 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
--net="bridge", 容器网络设置:
bridge 使用docker daemon指定的网桥
host //容器使用主机的网络
container:NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源
none 容器使用自己的网络(类似--net=bridge),但是不进行配置
--privileged=false, 指定容器是否为特权容器,特权容器拥有所有的capabilities
--restart="no", 指定容器停止后的重启策略:
no:容器退出时不重启
on-failure:容器故障退出(返回值非零)时重启
always:容器退出时总是重启
--rm=false, 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
--sig-proxy=true, 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理


扫描二维码,在手机上阅读
取消
微信二维码
微信二维码
支付宝二维码