docker命令总结
docker top 查看进程信息 docker attach 连接到正在运行中的容器 docker run --name 运行容器并为容器指定名称 docker run -d 后台运行 docker run -i -t name /bin/bash 运行容器并执行容器中的bash命令 docker exec -it container /bin/bash 执行容器中的bash命令 docker images 查看镜像 docker ps -a 查看所有容器 docker restart 重启容器 dockr stop 停止容器 docker rm container-name 删除容器 docker rmi image-name 删除镜像 docker ps -l -q 刚创建的容器 docker login ssh登录 docker logout 退出 docker pull 获取镜像 docker push 推送镜像 docker tag 重命名镜像
docker network 查看docker的网络
docker info 显示系统级别信息 sudo service docker status 查看docker运行状态 sudo service docker start/stop/restart 打开/关闭/重启docker服务 docker rmi $(docker images -q -f dangling=true) 删除所有未打 dangling 标签的镜像 docker save -o update1.tar update 镜像备份 docker load < update1.tar 镜像还原 docker export cbe3cb7799ed > update.tar 容器导出 docker import - update < update.tar 容器导入 docker-compose up -d --force-recreate 使用 --force-recreate 可以强制重建容器 (否则只能在容器配置有更改时才会重建容器) docker-compose down 停止所有容器,并删除容器 (这样下次使用docker-compose up时就一定会是新容器了)
想要删除untagged images,也就是那些id为<None>的image的话可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
配置阿里云镜像源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://okk35m0j.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
进入nginx:1.13.5-alpine容器:docker exec -it name sh
docker网络
1.Bridge模式,Docker采用 NAT 方式,将容器内部的服务监听的端口与宿主机的某一个端口port 进行“绑定”,使得宿主机以外的世界可以主动将网络报文发送至容器内部。
2.Bridge模式,外界访问容器内的服务时,需要访问宿主机的 IP 以及宿主机的端口 port。
3.Host模式,Docker Container的 IP 地址即为宿主机 eth0 的 IP 地址。
4.Container模式,Docker 容器会共享其他容器的网络环境。
5.None模式,不为 Docker 容器构造任何网络环境,容器只能使用127.0.0.1的本机网络。
6.docker中有5中网络模式:bridge、host、none、container、overlay,可以通过--net=**指定容器的网络模式。
7.当使用host模式网络时,容器实际上继承了宿主机的IP地址。该模式比bridge模式更快(因为没有路由开销),但是它将容器直接暴露在公共网络中,是有安全隐患的。
8.容器在两个跨主机进行通信的时候,是使用overlay network这个网络模式进行通信,如果使用host也可以实现跨主机进行通信,直接使用这个物理的ip地址就可以进行通信。
9.容器与其他同网段节点相互通信,不与宿主机进行通信,可以使用host网络模型。
docker各种网络性能:
1.Bridge 模式的性能损耗大概为10%
2.原生 overlay 模式的性能损耗非常高,甚至达到了 56%,因此,在生产环境下使用这种模式需要非常谨慎。
3.如果一定要使用 overlay 模式的话,可以考虑使用 Cisco 发起的 Calico 模式,它的性能和 bridge 相当。
免sudo使用docker
1.如果还没有 docker group 就添加一个: sudo groupadd docker
2.将用户加入该 group 内。然后退出并重新登录就生效啦。sudo gpasswd -a ${USER} docker
3.重启 docker 服务 sudo service docker restart
4.切换当前会话到新 group 或者重启 X 会话 newgrp - docker
Docker 参数 -i -t 的作用:通常的解释是: -t让docker分配一个伪终端并绑定到容器的标准输入上, -i则让容器的标准输入保持打开。
docker容器时间校准的方法
1.启动容器时候加一下 -v /etc/localtime:/etc/localtime,容器里面就会跟host一个时区了,也可以在Dockerfile里面指定。
2.复制主机的localtime docker cp /etc/localtime 4f:/etc/