docker是持续构建应用交付的一大利器也,但是要使工具发挥最大的功效还需要知道一些小技巧。
为了更好的使用docker,建议升级到1.13。注意,该建议仅为个人观点,并且是写于2017年9月3日。(下面命令皆基于1.13)
# 升级指令(centos7测试过)
yum-config-manager --add-repo https://docs.docker.com/v1.13/engine/installation/linux/repo_files/centos/docker.repo
yum makecache fast
yum -y remove docker docker-common container-selinux
yum -y install docker-engine-1.13.1
清除docker占用的磁盘空间
# 清除没有依赖的镜像和停止运行的容器,没有使用的容器卷与网络(强制清除用-f)
docker system prune
# 清除没有依赖的镜像(强制清除用-f)
docker image prune
# 清除停止运行的容器(强制清除用-f)
docker container prune
# 清除没有使用的网络(强制清除用-f)
docker network prune
# 清除没有使用的容器卷(强制清除用-f)
docker volume prune
查看docker占用docker空间情况
docker system df
创建自启动容器
docker run --restart=always my_image
创建退出自删除容器
docker run --rm my_image
容器健康检查
# 启动容器时候指定(timeout执行命令超时时间,health-interval执行检查间隔时间)
docker run -d --health-cmd "curl -f http://localhost/123 || exit 1" --health-interval=5s --timeout=3s my_image
# Dockerfile指定(timeout执行命令超时时间,interval执行检查间隔时间)
HEALTHCHECK --interval=60s --timeout=10s CMD curl -f http://127.0.0.1/ || exit 1
docker swarm 集群相关命令
# 创建集群
docker swarm init --advertise-addr {本机地址}
# 获取加入集群命令(管理员节点)
docker swarm join-token manager
# 获取加入集群命令(普通节点)
docker swarm join-token worker
# 显示节点列表
docker node ls
# 显示已有服务
docker service ls
# 显示某个服务下容器
docker service ps {服务名字}
# 创建一个服务
docker service create --replicas {实例数量} --name {服务名字} -p {主机端口}:{容器内部端口} my_image {启动指令}
# 删除一个服务
docker service rm {服务名字}
# 修改实例数量
docker service scale {服务名字}={服务数量}
# 修改实例使用镜像
docker service update --image {镜像名字} {服务名字}
# 修改实例内存限制
docker service update --limit-memory {内存使用} {服务名字}
# 修改实例cpu限制
docker service update --limit-cpu {内存使用} {服务名字}
查看容器占用资源情况
docker stats
查看所有镜像
docker images
查看容器
# 查看正在运行的容器
docker ps
# 查看所有的容器
docker ps -a