zoukankan      html  css  js  c++  java
  • docker命令集锦

    1 docker images -qa  获取所有镜像的id

    2 docker rmi -f $(docker images -qa)  删除所有的镜像

    3 进入运行的容器:docker  exec -ti  容器id  /bin/bash

       退出运行的容器:ctrl+p+q

    3.1 不进入容器执行命令:docker  exec  -it  容器名/ID  ping ip -c2 -w2

    4 查看仓库中的镜像:curl http://192.168.137.2:5000/v2/_catalog

    5 查看某个容器的日志:docker logs -f -t --since="2019-07-01" --tail=10 c0894b1ecbea(容器id)

           查看某个容器的配置信息:docker inspect [容器id]

      查看某个服务的输出日志: docker service logs -f  cbi_admin_api_tst【服务名】

          查看容器的日志具体位置 docker inspect --format='{{.LogPath}}'  容器名称

    [root@mycomputer_1 ~]# docker inspect --format='{{.LogPath}}' bbox01
    /app/docker/containers/61a74a9ac1658be6a4abade73ec1c727c548d448f3ec073b5f6ffd248b6e4c35/61a74a9ac1658be6a4abade73ec1c727c548d448f3ec073b5f6ffd248b6e4c35-json.log

    6 查看docker的根目录位置:docker info|grep "Docker Root Dir"

    7 docker默认根目录位置:/var/lib/docker

    8 修改docker的根目录:

    [root@localhost ~]# cat /etc/docker/daemon.json 
    {
     "insecure-registries":["192.168.137.2:5000"],
     "data-root":"/app/docker"
    }
    
    systemctl restart docker 
    docker info #查看是否生效

    9 创建镜像仓库:

    docker pull  registry
    docker run -itd -p 192.168.2.225:5000:5000 -v /data/docker/registry:/var/lib/registry --restart=always --name registry registry:latest
    # --restart=always 随着docker服务的重启而启动

     10 停止,启动容器:docker stop 容器名称  ,docker start 容器名称

    11 查看docker容器的端口映射:docker port  容器名称/容器id

    12 查看容器内部运行的进程:

    [root@localhost ~]# docker top registry
    UID         PID        PPID       C         STIME       TTY         TIME                CMD
    root        8617       8599       0         23:13       pts/0       00:00:00            registry serve /etc/docker/registry/config.yml

     13 删除停止的容器:docker rm 容器名称

     14 给容器打标签:docker tag 860c279d2fec runoob/centos:dev

     15 docker的service:可以在容器停止的情况下,重新启动一个:

    [root@localhost ~]# docker service ls
    ID                  NAME                MODE                REPLICAS            IMAGE                        PORTS
    rjdwbbltn8yd        test                replicated          1/1                 localhost:5000/test:latest   *:8001->8001/tcp, *:8010->8010/tcp
    [root@localhost ~]# docker ps 
    CONTAINER ID        IMAGE                        COMMAND     CREATED             STATUS           PORTS      NAMES
    e99c47d3023b        localhost:5000/test:latest   "nginx"     6 minutes ago       Up 6 minutes     80/tcp      test.1.x09hilbp3r0y6gppetbbby7gz
    [root@localhost ~]# docker stop e99c47d3023b  #停止容器
    e99c47d3023b
    [root@localhost ~]# docker ps  #没有了
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    [root@localhost ~]# docker ps  #过了一会儿自己启动了
    CONTAINER ID        IMAGE                        COMMAND      CREATED             STATUS                  PORTS     NAMES
    a6400bc8aa8a        localhost:5000/test:latest   "nginx"      6 seconds ago       Up Less than a second   80/tcp    test.1.hgrrz9gfgw6y6y4pivg1mn8jh
    [root@localhost ~]# docker service ls
    ID                  NAME                MODE                REPLICAS            IMAGE                        PORTS
    rjdwbbltn8yd        test                replicated          1/1                 localhost:5000/test:latest   *:8001->8001/tcp, *:8010->8010/tcp

     16 设置已经创建的容器开机自启动:docker update --restart=always 容器名称

      docker update --restart=always registry

     16.1 给docker service 绑定一个目录

        docker service create --mount type=bind,src=主机目录,dst=容器目录     。。。。。

        docker service update --mount-add  type=bind,src=主机目录,dst=容器目录    。。。。。。

      其他参数:--mount type=volume,src=cbi_portal_v3_tst,dst=/opt   ---》挂载卷到容器的某个目录下面(docker volume ls|grep cbi_portal_v3_tst)

        --replicas 1 副本数量,也就是起几个容器

        --constraint 'node.hostname==主机名称'   ---》将副本限制在某台主机下面

     17 查看swarm集群中,主机如何加入manager节点和加入worker节点

    [root@localhost ~]# docker swarm join-token worker   #查看如何加入worker节点
    To add a worker to this swarm, run the following command:
    
        docker swarm join --token SWMTKN-1-631ve9410gjgggbtdj15ylc02ll0bk0vmwxcifv4zgk5hfqtl8-3atcmkntjm8mdtfnxw0cgjdjj 192.168.137.2:2377
    
    [root@localhost ~]# docker service ls
    ID                  NAME                MODE                REPLICAS            IMAGE                        PORTS
    rjdwbbltn8yd        test                replicated          1/1                 localhost:5000/test:latest   *:8001->8001/tcp, *:8010->8010/tcp
    [root@localhost ~]# docker swarm join-token manager  #查看如何加入manager节点
    To add a manager to this swarm, run the following command:
    
        docker swarm join --token SWMTKN-1-631ve9410gjgggbtdj15ylc02ll0bk0vmwxcifv4zgk5hfqtl8-9fu1tqtwmf1k7v91lypa6uhqr 192.168.137.2:2377

     18 搭建docker swarm

    #先建立免密登陆
    ssh-keygen -t rsa
    ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.137.3
    #建立swarm集群
    docker swarm init
    #另外一台加入worker

    [root@localhost ~]# docker swarm join --token SWMTKN-1-631ve9410gjgggbtdj15ylc02ll0bk0vmwxcifv4zgk5hfqtl8-3atcmkntjm8mdtfnxw0cgjdjj 192.168.137.2:2377
    This node joined a swarm as a worker.

    #主节点上面查看

      docker node ls

     19 搭建docker service 

    docker service create --name nginx --publish 80:80 --replicas 2 bitnami/nginx  #后面的镜像没有的话它会去网上拉取,建立两个副本
    #主节点上面查看

    [root@localhost ~]# docker service ls
    ID NAME MODE REPLICAS IMAGE PORTS
    ibb0ekppspwp nginx replicated 2/2 bitnami/nginx:latest *:80->80/tcp

    [root@localhost ~]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    c54bb16786b5 bitnami/nginx:latest "/entrypoint.sh /run…" 3 minutes ago Up 3 minutes 8080/tcp, 8443/tcp nginx.2.w8ujuzx9dlwvrelju0ar2laeu

    #worker节点上面查看

    [root@localhost ~]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    baca209aa2a7 bitnami/nginx:latest "/entrypoint.sh /run…" 43 seconds ago Up 42 seconds 8080/tcp, 8443/tcp nginx.1.6esnsf77wa65e6asrr9y3ljea

     20 在swarm中模拟一个worker节点关闭或宕机

    #worker节点
    systemctl stop docker
    #主节点

    [root@localhost ~]# docker service ls
    ID NAME MODE REPLICAS IMAGE PORTS
    ibb0ekppspwp nginx replicated 2/2 bitnami/nginx:latest *:80->80/tcp

    [root@localhost ~]# docker ps #出现了两个
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    4cebd8de7145 bitnami/nginx:latest "/entrypoint.sh /run…" 2 minutes ago Up 2 minutes 8080/tcp, 8443/tcp nginx.1.t3txcm6hrjl5fjyq1i105szv9
    c54bb16786b5 bitnami/nginx:latest "/entrypoint.sh /run…" 8 minutes ago Up 8 minutes 8080/tcp, 8443/tcp nginx.2.w8ujuzx9dlwvrelju0ar2laeu

    #这样的情况,即使worker节点的服务恢复了,主节点的副本也不会过来,要过来怎么处理,使用docker stop

      #主节点:docker stop c54bb16786b5 #停止其中一个容器id,这样的话,另外一个副本就跑去worker节点了

     21 在warm的情况下,我们把docker服务停止了,启动docker后 service会怎么样?

    #主节点上面
    systemctl stop docker
    #查看worker节点
    [root@localhost ~]# docker ps #依然还在
    CONTAINER ID    IMAGE                  COMMAND                  CREATED             STATUS              PORTS                NAMES
    c48e71c9c9f5    bitnami/nginx:latest   "/entrypoint.sh /run…"   5 minutes ago       Up 5 minutes        8080/tcp, 8443/tcp   nginx.2.f777lya1hi7gi1runshh5c5j1
    #现在启动docker
    systemctl start docker
    #查看主节点---》service也跟着启动了

    [root@localhost ~]# docker service ls
    ID NAME MODE REPLICAS IMAGE PORTS
    ibb0ekppspwp nginx replicated 2/2 bitnami/nginx:latest *:80->80/tcp

    [root@localhost ~]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    dbb7c8b7e208 bitnami/nginx:latest "/entrypoint.sh /run…" 6 minutes ago Up 6 minutes 8080/tcp, 8443/tcp nginx.1.fuu8vanirdvblykkeph1r74xr

     22 docker的镜像加速地址:"registry-mirrors":“http://f1361db2.m.daocloud.io”

    23 docker删除孤立的卷(被停掉服务占用的卷,正在用的删除不了):docker volume rm `docker volume ls -q`

    24 查看docker容器的完整命令:docker ps  --no-trunc 

    25 查看docker某个节点的标签:docker node inspect  node主机名 | grep -i -C 1 labels

    [root@pek cb]# docker node inspect cbi236|grep -i -C 1 labels
            "Spec": {
                "Labels": {
                    "env": "prd"

     26  .dockerignore  --->根据 .(点)所在的目录使用,不一定在Dockerfile所在的目录

    在使用docker build命令时,会根据Dockerfile文件和上下文构建docker镜像,将所有的文件放入进程中

    构建上下文是指Dockerfile所在的本地路径或一个URLGit仓库地址)。构建上下文环境会被递归处理,所以,构建所指定的路径还包括了子目录,而URL还包括了其中指定的子模块。

    一般Dockerfile放在一个空目录下面,根据当前的目录构建,但是有时候不希望有其他内容提交,使用.dockerignore

    例如:

    cat  .dockerignore
    *.jar.*

    也可以使用 -f 知道Dockerfile文件的位置

    docker build -f /path/to/a/Dockerfile .
  • 相关阅读:
    我的项目物业收费
    我的项目人员定位
    我的简历
    我的项目证券分析
    MSIL探索-序
    VC++深入详解笔记.cpp
    减少图片分辨率
    PL/SQL Developer 7.1 正式版 完美破解
    Lamp软件环境安装
    CentOS 6.4 安装
  • 原文地址:https://www.cnblogs.com/mmyy-blog/p/10918076.html
Copyright © 2011-2022 走看看