此文档会不定期补充

登录中央仓库

1
docker login -u admin -p admin000

把容器打包成镜像

1
docker commit [-a "sora"](作者) [-m "hadoop-image"](备注) b8f2600a49e7(容器名或id) 172.16.7.222:8082/centos7-tools-jdk8-git:0.0.6(镜像名:tag)

上传镜像到私服仓库

1
docker push 172.16.7.222:8082/centos7-tools-jdk8-git:0.0.7

退出容器且关闭

1
ctrl+d 退出容器且关闭, docker ps 查看无

退出容器但不关闭

1
ctrl+p+q 退出容器但不关闭

查看容器

1
docker ps [-a](所有的容器)

从容器到宿主机拷贝文件

1
docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt 从容器到宿主机拷贝文件

从宿主机到容器拷贝文件

1
docker cp /opt testtomcat:/usr/local/tomcat/webapps/test/js/test.js  从宿主机到容器拷贝文件

进入docker容器

1
docker attach 44fc0f0582d9 进入docker容器

运行镜像并添加端口

1
docker run -d -p 8000:80  foo/live /bin/bash

docker从dockerfile建立镜像

1
docker build -t myopenresty -f trusty/Dockerfile .

创建自定义网络

1
2
3
4
5
6
7
docker network create --subnet=172.18.0.0/16 mynetwork

启动时:docker run -itd --name networkTest1 --net mynetwork --ip 172.18.0.2 centos:latest /bin/bash

创建overlay网络

docker network create --driver overlay --opt encrypted --subnet 10.10.19.0/24 ngx_net

compose启动

1
docker-compose up

compose查看

1
docker-compose ps

swarm启动

1
docker strack 
  • docker容器做任何操作均无响应(删除僵尸容器,假死容器)

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    
    Normal   Killing        2m                       kubelet, k8s-77-83  Killing container with id docker://kafka:Need to kill Pod
    Warning  FailedKillPod  2m                       kubelet, k8s-77-83  error killing pod: failed to "KillContainer" for "kafka" with KillContainerError: "rpc error: code = Unknown desc = operation timeout: context deadline exceeded"
    Warning  FailedSync     <invalid> (x5 over 23s)  kubelet, k8s-77-83  error determining status: rpc error: code = DeadlineExceeded desc = context deadline exceeded 
    
    处理方式:在/var/lib/docker/overlay2目录下找到docker对应的容器层文件夹,一般以-init结尾,删除之。注,这里的容器层文件名并不是容器Id。因为对容器执行inspect指令不会得到相应,这里可以采取对容器所使用的镜像inspect,锁定镜像层目录树,然后推敲docker容器的容器层目录文件夹。
    删除源文件后,采用pstree [-p](显示PID),找到容器的pid,用ps查询之,会得到类似如下的结果:
        
    root     16938  0.0  0.0  14180  8748 ?        Sl   8月27   0:50 docker-containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/1a30d497c29a7cf245512ee15adf4a8fb9a880377611e5701d65ad9cf2f4db86 -address /var/run/docker/containerd/docker-containerd.sock -containerd-binary /usr/bin/docker-containerd -runtime-root /var/run/docker/runtime-runc -systemd-cgroup
        
    注意这里显示了当前container的workdir为***/1a30d497c29a7cf245512ee15adf4a8fb9a880377611e5701d65ad9cf2f4db86,这个就是container的id
        
    随后就可以使用docker rm的方式删除该容器就行