首先需要明确的是: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下部署LLAMA 2,附带命令代码和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 network命令创建自定义网络。...
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的安装过程中,GPG文件通常用来验证Docker仓库的软件包是否来自可信源,确保下载的Docker软件包未被篡改或包含恶意代码。 首先,我们来了解一下Docker的安装流程。在Linux系统中,Docker通常通过官方的仓库...
如果Windows安装docker的时候报错19044 or above,就使用这个版本
上传到服务器上,解压安装包,解压完成进入nvidia-docker目录,在进入里面的docker目录,cd nvidia-docker/docker/ 直接执行里面的install.sh脚本即可; nvidia-docker部署步骤: 和上面描述的一样,先操作上面的...
安装docker 获取root 权限 su root 拷贝所有文件到 /opt/docker/ (如果没有 docker目录执行 mkdir -p /opt/docker) yum localinstall -y /opt/docker/*.rpm 安装docker-compose cd /opt/docker/ tar ...
本指南主要介绍如何在docker下部署LLAMA 2,附带命令代码和docker文件的编辑代码
离线环境下,在centos7.6系统上安装docker-ce-19.03,nvidia-docker2.4版本,其中docker-ce-19.03在docker-local.tar压缩文件里面,nvidia-docker2在nvidia-docker2.zip文件中。 具体安装流程如下: 1.安装docker ...
docker版本26.1.2,docker-compose版本v2.11.0。 1.把docker_compose_install-new文件夹放在任意路径; 2.chmod -R 777 install.sh 3.执行./install.sh 兼容:CentOS7.6、麒麟V10服务器版。