首先需要明确的是:Docker到底能够带来什么样的好处,Docker带来轻量级虚拟化容器方面的优势(资源利用率高,创建快捷,环境纯粹) ? 还是镜像带来的优势(便于部署,记录容器状态,持续集成等)? 确定了使用的场景,才好说明代码到底放到什么地方更合适。
举几个例子,可以根据场景灵活的方式使用代码和数据:
场景一:如果做好了所有代码,想分发给其他使用者,这种无疑代码放到image是最佳的,包括数据库初始化脚本等。
场景二:如果是开发环境,代码是用于调试,代码不应该在image里面,代码最好是在本机电脑上,如MacOS,Windows,Linux的个人PC上,那么就通过volume方式进行挂载是最方便的,修改代码直接就可以进行调试。如果开发环境在服务器上,可以通过远程mount的方式,mount到本机进行开发修改。
场景三:如果是测试环境,建议使用git方式,代码不在image中,通过docker exec到容器内pull对应测试tag的代码。当然也可以在宿主机pull,然后docker cp到对应的测试容器。
没有哪种最优,只有最适合的。
===========================
docker部署两种情形:
1)开发环境
由于开发环境代码一直在变动,而且多人通过git协作,于是代码都是放在外面,构建一个运行环境的image,然后代码部分用volume映射进去,方便随时调整。
2)生成环境
我们的生产环境比较独特,一般都是给客户安装成品而不是自己的服务器,一方面为了保护代码,另一方面是减少不必要的麻烦,于是就把代码都构建在image里面,这样直接在客户那边把镜像运行起来就行,只是个下载的时间,也不需要其他操作。
在自己的服务器上,由于基本是内部演示之类,所以完全就是当做开发环境来对待的,参见第一条。
Docker嘛,既然可以虚拟环境,那么怎么合适怎么用吧,目的就是开发的时候启动的快+重新构建快,给客户安装的时候要尽可能的简单。
===========================
1) 镜像相当于模板,开发代码放镜像的话,减低镜像的复用性。
2) 代码放在image里管理是否会造成本地存储和网络传输上不必要的负担。
===========================
实用场景之一:
1、在开发环境,因为code的频繁变更,通过volume方式进行挂载方便。
2、代码提交到git repo后,通过jenkins打包编译,把编译后的代码包生成到docker image中,并打好对应的tag,上传到docker registy。之后进入测试环境进行部署,测试。
3、通过paas ci后的docker image就可以直接在生产环境进行部署了。
相关推荐
python 操作docker 命令, docker命令操作,镜像查看,运行,删除,导出,加载等操作...
springcloud与docker微服务架构实战配套代码springcloud与docker微服务架构实战配套代码springcloud与docker微服务架构实战配套代码springcloud与docker微服务架构实战配套代码springcloud与docker微服务架构实战...
项目管理看板系统Taiga源代码涵盖Docker部署项目
puppetlabs-image_build, 从 Puppet 代码生成 Docker 图像 image_build 目录MODULE 描述- image_build MODULE 是什么,它做了什么? 设置使用image_build启动入门的基本步骤。用法- 如何使用 Puppet 构建 Docker ...
docker入门学习代码,使用Docker Hub官方gcc:latest镜像(1.2GB)编译C/C++程序,以及缩小镜像的方法。方法1:在gcc容器里编译C/C++程序 将C/C++代码运行在gcc容器内的最简单方法就是将gcc编译指令写入Dockerfile中...
glot-containers, 用于运行代码的Docker 容器 glot容器概述glot容器是 glot.io 使用的Docker 映像的集合,用于运行代码。 生成的图像可以在 Docker-Hub 找到。
Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包...
这个我亲手写的docker入门教程,适合入门者,欢迎下载。
To run this you will need docker and docker-compose. By default, Docker host ports 80 and 443 are required by the reverse proxy container. If this is an issue, change the port mappings in the docker-...
《Docker从入门到实战》源代码文件 杨保华 戴王剑 曹亚仑 编著
docker基本入门以后,可以试试打包docker镜像与dockerfile了 docker镜像 docker hub仓库有2类仓库,用户仓库和顶层仓库,用户仓库由docker用户创建的,顶层仓库由docker内部的人来管理的。仓库里存放的是镜像文件,...
离线环境下,在centos7.6系统上安装docker-ce-19.03,nvidia-docker2.4版本,其中docker-ce-19.03在docker-local.tar压缩文件里面,nvidia-docker2在nvidia-docker2.zip文件中。 具体安装流程如下: 1.安装docker ...
上传到服务器上,解压安装包,解压完成进入nvidia-docker目录,在进入里面的docker目录,cd nvidia-docker/docker/ 直接执行里面的install.sh脚本即可; nvidia-docker部署步骤: 和上面描述的一样,先操作上面的...
查看nginx容器一直都是退出状态
本指南主要介绍如何在docker下部署LLAMA 2,附带命令代码和docker文件的编辑代码
一本引导读者深入了解Docker实现原理的技术普及读物,主要目标是通过对Docker架构和源代码的详细讲解和解剖,帮助读者对Docker的底层实现有一个全面的理解 作者通过大量的流程图和代码片段对Docker的架构、...
Docker:Docker源代码
一键离线安装docker、docker-compose
docker pull beginor/gitlab-ce:11.0.1-ce.0 2.创建GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级 mkdir -p /mnt/gitlab/etc mkdir -p /mnt/gitlab/log mkdir -p /mnt/gitlab/...
own Docker storage or network plugin. Chapter 6, Extending Your Infrastructure, covers how to use several established DevOps tools to deploy and manage both your Docker hosts and containers. Chapter 7...