当前位置:首页 >> 服务器

docker日常使用的实用小技巧总结(推荐)

前言

Docker 是一个能够把开发应用程序自动部署到容器的开源引擎。它由Docker公司的团队编写,基于Apache 2.0开源协议授权。它提供了一个简单、轻量的建模方式,使开发生命周期更高效快速,鼓励了面向服务的架构设计。Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

Docker 可能一开始让你望而生畏,但确实是一个非常伟大的工具。

为了更好的使用docker,建议升级到1.13。注意,下面命令皆基于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 

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。