Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在开发环境使用 Docker

在开发环境使用 Docker

作者头像
康怀帅
发布于 2018-02-28 08:16:07
发布于 2018-02-28 08:16:07
1.7K0
举报
文章被收录于专栏:康怀帅的专栏康怀帅的专栏

本文是对官方文档的总结与备注。

官方文档:https://docs.docker.com/develop/

根据官方文档的层次,分为

  • 容器 (Containers) 使用 Docker run
  • 服务 (Services) 使用 Docker Compose Defines how containers behave in production
  • 服务栈 (Stack) 使用 Swarm mode Defining the interactions of all the services

必须知道

  • 使用 Dockerfile 构建镜像
  • 使用 multistage builds 保持镜像最小
  • 使用 Volumebind mounts 管理数据
  • 使用 docker swarm 部署服务
  • 使用 docker stack 部署服务栈 compose 文件
  • 普遍的应用开发最佳实践

Docker development best practices

Docker 开发最佳实践

如何保持镜像最小

  • Start with an appropriate base image. 如果你需要 JDK,则直接使用官方的 openjdk 镜像,而不要基于 ubuntu 安装 openjdk
  • Use multistage builds. 使用多阶段构建,如果你的 Docker 版本不支持 多阶段构建,请请尽可能减少镜像层数。
  • 使用你自己的基础镜像
  • 保持生产环境镜像尽可能小,但允许调试
  • 使用有明确含义的镜像标签 prod 或者 test,尽量不使用 latest 标签。

Where and how to persist application data

应用数据如何存储,存放在哪里

  • 避免 将数据存放在镜像中
  • 使用 volumes 存放数据
  • 在开发环境使用 bind mounts ,在生产环境使用 volume
  • 在生产环境中使用 secrets 存储敏感数据,使用 configs 存储非敏感数据,比如配置文件

Use swarm services when possible

  • 在可能的情况下使用 Swarm mode
  • 哪怕仅需要运行一个容器,Swarm mode 能提供更多的功能
  • 通过 Swarm 服务,网络和数据卷能够连接和断开
  • 一些功能只在 服务 中可用,比如 secrets config,上一部分已经提到
  • 使用 docker stack deploy pull 镜像,而不是使用 docker pull

Use CI/CD for testing and deployment

  • 当程序源码改变或创建了一个 Pull request,使用 Docker Cloud 或者其他 CI/CD 自动构建镜像和创建镜像标签并自动测试镜像。Docker cloud 可以把测试通过的镜像部署到生产环境中。
  • 使用 Docker EE ,安全团队 sign 一个镜像,之后部署到生产环境中。

Differences in development and production environments

Development

Production

Use bind mounts to give your container access to your source code.

Use volumes to store container data.

Use Docker for Mac or Docker for Windows.

Use Docker EE if possible, with userns mapping for greater isolation of Docker processes from host processes.

Don’t worry about time drift.

Always run an NTP client on the Docker host and within each container process and sync them all to the same NTP server. If you use swarm services, also ensure that each Docker node syncs its clocks to the same time source as the containers.

镜像管理

Docker Hub

Dcoekr Registry 私有仓库

https://cloud.tencent.com/developer/article/1047173

Docker Trusted Registry (Docker EE)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效
由于近两年云原生热,大家对docker、docker compose及k8s或多或少都有一些涉猎,即便没有实际应用肯定也耳熟能详,今天对docker及docker compose的命令集进行梳理,大家可以收藏以便之后快速查阅。
LDG_AGI
2024/08/13
3350
Docker 启动容器实例报错:UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeou...
https://github.com/docker/compose/issues/3927
一个会写诗的程序员
2022/09/19
1.7K0
Docker 启动容器实例报错:UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeou...
Docker selenium自动化 - Python调用容器实例跑自动化查天气实例演示,docker selenium自动化环境部署过程
[系列文章篇] 篇章一:Docker selenium 自动化 - windows 版 docker 的安装与运行环境检测 [问题处理篇] 篇章一:Docker selenium 自动化 - 修改 /dev/shm 路径大小实例演示,“session deleted because of page crash” 问题解决
小蓝枣
2021/12/01
5020
Docker selenium自动化 - Python调用容器实例跑自动化查天气实例演示,docker selenium自动化环境部署过程
Docker基本命令
[root@localhost ~]# docker Usage: docker [OPTIONS] COMMAND A self-sufficient runtime for containers Options: --config string Location of client config files (default "/root/.docker") -D, --debug Enable debug mode -H, --host
红目香薰
2022/11/29
3810
Docker基本命令
【Docker三连问】什么是Docker? | Docker风靡原因? | 如何安装使用Docker?
文档:Docker Documentation | Docker Documentation
宝耶需努力
2022/12/13
6630
【Docker三连问】什么是Docker? | Docker风靡原因? | 如何安装使用Docker?
Docker化Spring Boot应用
本文翻译自国外论坛 medium,原文地址:https://medium.com/@bubu.tripathy/dockerizing-your-spring-boot-application-75bf2c6568d0
wayn
2023/08/28
4300
Docker化Spring Boot应用
天才第一步 Docker 纸尿裤
Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 Table of Contents 1. 应用场景 2. 优点 3. 下载和安装 3.1. Docker for Mac 3.2. Docker fo
双鬼带单
2018/03/29
8910
天才第一步 Docker 纸尿裤
手把手教你玩转 Docker
关于Docker 的文章和相关书籍非常繁多,从Docker 的概念,架构,到容器的编排管理等等,内容很多。但是对于非运维人员来说,其实一篇文章就够了,那些书籍,可以当作工具书使用,需要的时候再去查。
Markgogogo
2022/06/13
8430
手把手教你玩转 Docker
Docker:让应用程序轻松移植到任何地方的利器
容器是一种轻量级的独立可执行包,可以包括应用程序所需的所有内容(如代码、库、环境变量和系统工具),并在任何地方进行部署。与虚拟机不同,它们不需要完整的操作系统,因此更加轻便、快速和易于移植。
一只
2024/06/26
3070
Docker入门教程 Part 3 Services
本篇笔记是官方Get Started入门教程的Part3 Services,主要演示如何使用 docker-compose.yml 来定义应用服务,docker-compose 可以很方便地对 app 进行调整,并且很容易地实现负载均衡。
twowinter
2020/04/17
8560
《Docker极简教程》--Docker在生产环境的应用--Docker在生产环境的优化
在生产环境中,确保使用安全的Docker镜像是至关重要的,因为不安全的镜像可能会导致系统遭受攻击或者数据泄露。以下是一些安全的Docker镜像使用的优化方法,以及相应的例子:
喵叔
2024/05/24
4100
docker快速入门
docker已经是一年前的时候学习的了,当时,不会go语言。工作中一直没有使用,已经忘光了。在放假前,sdk那边说线上docker的打包环境每次打包特别慢,查询了一下,每次打包都会下载所有需要的依赖。重复下载,需要优化到下载完成后的状态。放假期间一直在复习python的科学计算和golang。就没有花时间在docker上。 我今天的高铁回广州,提前到了,在淘宝上花了0.3元,买了一个cmcc-web账号,联网。学习学习docker简单使用。 Docker 是什么? Docker 是一个开源的容器引擎,而
若与
2018/04/25
9350
docker快速入门
Docker | 加速开发流程的 Dockerfile 最佳实践
Dockerfile 是创建 Docker 镜像的起点,该文件提供了一组定义良好的指令,可以让我们复制文件或文件夹,运行命令,设置环境变量以及执行创建容器镜像所需的其他任务。编写 Dockerfile 来确保生成的镜像安全、小巧、快速构建和快速更新非常重要。
咸鱼学Python
2020/05/18
1.6K0
Docker | 加速开发流程的 Dockerfile 最佳实践
【知识分享】Docker 命令大全
容器生命周期管理 run start/stop/restart kill rm pause/unpause create exec 容器操作 ps inspect top attach events logs wait export port 容器rootfs命令 commit cp diff 镜像仓库 login pull push search 本地镜像管理 images rmi tag build history save load import info|version info version 帮
辉哥
2019/07/15
3930
【知识分享】Docker 命令大全
从零开始搭建服务器之更加优雅地部署项目
如果你需要经常性需要多处部署同样的项目,如果你曾经也遇到过"明明在我电脑运行得好好的"问题,如果听说过 Docker 但还没用过,如果你不确定你到底需不需要 Docker ,那么,希望你花时间阅读一下这篇文章!
雪之梦技术驿站
2019/12/02
8160
从零开始搭建服务器之更加优雅地部署项目
docker三剑客docker-compose、docker-machine、swarm
安装composecurl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-(uname -s)-(uname -m) -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose测试安装
菲宇
2022/12/21
4640
墙裂推荐!看完全面掌握,最详细的 Docker 学习笔记总结(2021最新版)
Docker 是一个开源的容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者和系统管理员在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括 VMs(虚拟机)、bare metal、OpenStack 集群、云端、数据中心和其他的基础应用平台。容器是完全使用沙箱机制,相互之间不会有任何接口。
民工哥
2021/04/18
3.6K0
如何使用 docker 高效部署 Node 应用
一个合理并且高效的部署方案,不仅能够实现快速升级,平滑切换,负载均衡,应用隔离等部署特性,而且配有一套成熟稳定的监控。
山月
2020/08/28
1.3K0
Docker 学习资源整理
本文介绍了Docker技术的一些重要概念、使用场景、优点、缺点以及如何在本地和云上使用Docker。作者还讲解了Docker的技术实现、基础架构、容器管理、镜像管理、日志和监控、网络、安全、集群以及Kubernetes等内容。此外,还介绍了一些有用的工具和插件,以及如何学习和使用Docker。
shaonbean
2018/01/02
3.3K0
n1.Docker命令参数一览表
描述:利用 docker info 命令 Docker Client && Docker Server 信息一览:
全栈工程师修炼指南
2020/10/23
2.3K0
n1.Docker命令参数一览表
推荐阅读
相关推荐
AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档