docker 系列:实践工具

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 本文将介绍 Docker 的相关工具使用经验,比如 Docker-compose:容器编排工具;Portainer:容器可视化管理;以及 DockerFile 的构建。相当于是一套组合拳。让我们能更轻松、更方便去管理 Docker。

前言

本文将介绍 Docker 的相关工具使用经验,比如 Docker-compose容器编排工具Portainer容器可视化管理;以及 DockerFile 的构建。相当于是一套组合拳。让我们能更轻松、更方便去管理 Docker。

Docker Compose

使用 Docker Compose 有一个好处就是可以通过配置化的方式去编排容器。比如我们当前有 3 个服务,其中 A 依赖于 B,B 依赖于 C,那么我们就可以在 YML 中使用 depends_on 配置项,来指明对应依赖的服务。使得容器的编排更加人性化。下面列举了下比较常用的配置项:

version: "3"
services:
  redis:                             # 服务名
    image: redis:alpine              # 使用的镜像模板
    container_name: my-redis         # 容器名
    hostname: my-redis               # 容器 hostname
    ports:
      - 6379:6379                    # 端口映射
    volumes:                         # 卷映射
      - ./data/redis:/data
    restart: unless-stopped          # 容器重启策略,有 no、always、on-failure、unless-stopped 选项
    depends_on:
      - database                     # 依赖的服务
  database:
    image: postgres:latest
    volumes:
      - "/localhost/postgres.sock:/var/run/postgres/postgres.sock"
      - "/localhost/data:/var/lib/postgresql/data"

当 YML 配置文件准备好后,我们就可以使用 docker-compose up命令来启动运行容器了。如果想 stop 容器,可以使用 docker-compose down 则会把当前 YML 文件里的容器服务都停止掉。

Portainer

Portainer 可以帮助我们可视化的管理容器,而不需要到主机里一个一个命令的查看容器信息。管理的内容包括了 Docker 容器imagesvolumenetwork 等常用功能。

Portainer 服务我们可以使用下面的 YML 文件来创建:

version: '2'
services:
  portainer:
    image: portainer/portainer
    command: -H unix:///var/run/docker.sock
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
volumes:
  portainer_data:

当 Portainer 容器启动完后,我们可以访问 9000 端口,进入到如下的管理界面了:

Portainer

可以看到,Portainer 这个管理工具非常的齐全,可以说是解脱了我们的双手,省了很多敲命令的时间。

DockerFile 的构建

上面的两个让容器的编排和管理更加的简洁方便,但我们还有一个关键要素:镜像。我们经常需要编写 DockerFile 以便能 build 和 push 一个自定义镜像到仓库中心。

关于 DockerFile,这里简单介绍下相关命令:

  • FROM:要定制的基础镜像,相当于基础系统环境,例如 centosalpine
  • RUN:要执行的命令
  • . :这里是指上下文路径,方便打包指定的文件给 docker 引擎使用
  • COPY:从上下文目录中复制文件或者目录到容器里指定路径
  • ADD:和 COPY 的类似
  • CMD:和 RUN 类似,只是 CMD 在 docker run 时运行,RUN 在 docker build 运行
  • ENV:环境变量
  • EXPOSE:要暴露的端口
  • WORKDIR:工作目录,容器启动时执行的命令会在该目录下执行

例如,一个 Dockerfile 如下:

FROM ubuntu:18.04
COPY . /app
RUN make /app
CMD python /app/app.py

这样就可以制作一个关于 python 的镜像了。

当我们在构建 DockerFile 时,应尽量的让镜像大小降到最低,要选择合适的基础镜像,不添加多余的东西。

就像上面的 python 就不需要携带文本编辑器了。另外,如果镜像的依赖关系复杂,尽量使用多阶段构建,也就是 COPY --from 之前阶段的成果。这样的话可以让我们的构建思路比较清晰明了。关于多阶段的构建,可以看看官网的这篇:多阶段构建

总结

docker 的火热衍生出了很多其他管理工具,让我们的生产力提高很多,像除了 docker-compose 外还有 Docker MachineDocker Swarm 等。当然,大多数时候,上面提及到的已经够用了,大伙也可以自个深入研究。

相关文章
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
527 2
|
3月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
784 108
|
2月前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1611 9
|
2月前
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
275 99
|
2月前
|
关系型数据库 MySQL Linux
事项驱动的项目管理工具Dectask的Docker安装教程
Dectask是智能驱动的新一代项目协作工具,本人介绍其Docker安装教程。
105 2
|
6月前
|
Prometheus 监控 Cloud Native
除了Prometheus,还有哪些工具可以监控Docker Swarm集群的资源使用情况?
除了Prometheus,还有哪些工具可以监控Docker Swarm集群的资源使用情况?
535 79
|
4月前
|
NoSQL Redis Docker
使用Docker Compose工具进行容器编排的教程
以上就是使用Docker Compose进行容器编排的基础操作。这能帮你更有效地在本地或者在服务器上部署和管理多容器应用。
454 11
|
5月前
|
前端开发 数据安全/隐私保护 计算机视觉
MAZANOKE:一款隐私优先的浏览器图像优化工具及Docker部署指南
MAZANOKE 是一款简易的图片优化工具,它直接在浏览器中运行,支持离线使用,并确保您的图片始终保留在设备上,绝不外泄。 这款专为普通人设计的工具,适合与亲友分享使用,是那些来路不明的"免费"在线工具的可靠替代品。
179 1
MAZANOKE:一款隐私优先的浏览器图像优化工具及Docker部署指南
|
5月前
|
存储 数据可视化 数据安全/隐私保护
【赵渝强老师】Docker的图形化管理工具
本文介绍了三种主流的Docker图形化管理工具:Docker UI、Portainer和Shipyard。Docker UI(现名UI for Docker)适合初学者,支持容器管理并可显示容器关系图;Portainer轻量级且功能全面,支持单机与集群管理;Shipyard专注于多主机集群管理,提供镜像、容器及节点管理功能,并包含engine和rethinkdb两个核心组件。文中还通过图文结合的方式展示了各工具的安装与使用方法。
254 4
【赵渝强老师】Docker的图形化管理工具
|
8月前
|
Ubuntu 关系型数据库 MySQL
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
364 16
下一篇
oss云网关配置