此文档会不定期补充

登录中央仓库

docker login -u admin -p admin000

把容器打包成镜像

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

上传镜像到私服仓库

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

退出容器且关闭

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

退出容器但不关闭

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

查看容器

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

从容器到宿主机拷贝文件

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

从宿主机到容器拷贝文件

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

进入docker容器

docker attach 44fc0f0582d9 进入docker容器

运行镜像并添加端口

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

docker从dockerfile建立镜像

docker build -t myopenresty -f trusty/Dockerfile .

创建自定义网络

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启动

docker-compose up

compose查看

docker-compose ps

swarm启动

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15


    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的方式删除该容器就行