通过下面的一个脚本可以简单快速的创建一个镜像并运行起来 大概看下应该就可以大概明白镜像的基本使用了
是否有这样的场景,你搞了一个项目,在本地开发时需要搭建环境,放到线上时也需要搭建环境,到公司想暗戳戳玩一下要搭建环境,不搭还不行,因为你的环境依赖还挺多。这个时候如果有了Docker,只需要在机器上装个Docker,放上写好的Dockerfile,一行命令就自动完成这个事,方便又高效,岂不是很爽?
参考官方:https://docs.docker.com/compose/compose-file/
软件:docker-ce version 18.09.3, docker-compose version 1.23.2
前文演示了在单一容器中部署 Nginx和ASP.NET Core WebApp, 正在前文评论区某大牛指出的,容器化部署 nginx+ASP.NET Core 有更符合实战的部署选择:多容器独立部署。
Nginx 对于大多数开发者来说不算陌生,企业团队用它来搭建请求网关,我们私下用它 “科学上网”(价值观警告)。但对于前端 er 来说,平日里开发大多时候都只是专注于业务,根本不需要也没机会涉及到 Nginx 这一块的内容,也就导致我们也对它的了解少之甚少。随着 serverless 孕育普及,越来越多的人相信,不需要掌握任何运维知识,也能简单快速地实现自己的技术 idea。
Nginx 对于大多数开发者来说不算陌生,企业团队用它来搭建请求网关。但对于前端 er 来说,平日里开发大多时候都只是专注于业务,根本不需要也没机会涉及到 Nginx 这一块的内容,也就导致我们也对它的了解少之甚少。随着 serverless 孕育普及,越来越多的人相信,不需要掌握任何运维知识,也能简单快速地实现自己的技术 idea。
Drone是一个流行的持续集成和交付平台。它集成了许多流行的版本控制存储库服务,如GitHub,GitLab和Bitbucket,以监视代码更改并在提交时自动构建和测试更改。
创建nginx目录,在目录下分别创建三个节点目录:nginx01、nginx02、nginx03,目的是使nginx01作为反向代理服务器,将请求均衡转发到nginx02、nginx03。
一、项目结构 [root@mail docker-feiyu]# tree `-- dokcer-feiyu |-- docker-compose.yml |-- nginx | |-- Dockerfile | `-- nginx.conf |-- User |-- Dockerfile |-- manage.py |-- requirements.txt |-- static |-- users |-- db.sqlite3 |-- gunicorn.conf |-- media |-- start.sh |-- templates `-- User 二、nginx部分 1、先编写Dockerfile [root@mail nginx]# vi Dockerfile
Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Docker-Compose的工程配置文件默认为docker-compose.yml,使用一个Dockerfile模板文件,可以让用户很方便的定义一个单独的应用容器。在工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个Web项目,除了Web服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。 Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project。 Docker-Compose项目由Python编写,调用Docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持Docker API,就可以在其上利用Compose来进行编排管理。
在命令行进入/code/docker/django目录,执行 docker-compose build构建django镜像到本地,完成会返回success
docker-compose非常适合开发、测试、快速验证原型,这个小工具让单机部署容器变得简洁、高效。正如我在《docker-compose,docker-stack前世今生》里讲,所有人都认为docker-compose是单机部署多容器的瑞士军刀,没有docker stack由deploy配置节体现的生产特性(多实例、滚动部署、故障重启、负载均衡)。
如果您的Docker应用程序包含多个容器(例如,在不同容器中运行的Web服务器和数据库),从单独的Dockerfiles构建,运行和连接容器将非常麻烦且耗时。但是Docker Compose允许您使用YAML文件来定义多容器应用程序,从而解决了这个问题。您可以根据需要配置任意数量的容器,如何构建和连接它们以及应该存储数据的位置。完成YAML文件后,您可以运行单个命令来构建,运行和配置所有容器。
18年刚出来实习的时候就搭建过lnmp开发环境,教程为docker 搭建LAMP开发环境,拉的是一个集成的lnmp环境,今天使用mysql、nginx、php的镜像来搭建多个容器的php-fpm环境。
本篇我们将实现应用的部署,这篇教程将首先 Docker 来容器化你的应用,接着教你配置 MongoDB 的身份验证机制,给你的数据库添加一份安全守护,最后我们会带你使用阿里云的容器镜像服务将整个全栈应用部署到云端,使得你互联网上的用户可以访问你的网站,希望这篇教程能解决长期困扰你的部署上云的问题!
注意:php7需要安装mysql扩展,才能正常连接 准备阶段 # 创建目录: # cert 存放证书文件的目录 # log 存放日志文件的目录 # nginx_conf 存放nginx.conf配置文件的目录 # wwwroot 存放网站文件的根目录 mkdir -p /www/cert /www/log /www/nginx_conf /www/wwwroot # nginx.conf配置文件 配置http(跳转到https)/ https 访问
上一回学习了如何利用docker搭建一个mysql + java service + nginx,总共4个docker容器,如果采用docker run的方式一个一个容器去创建十分麻烦。为了能更高效的批量创建容器,docker推出了docker-compose工具,只需要定义一个docker-compose.yml文件即可快速搞定一组容器的创建,仍然以上一回的例子演示: mysql: image: daocloud.io/yjmyzz/mysql-osx:latest volumes:
通过阅读之前的小节,相信大家对 Docker 在开发中的应用已经有了一定的了解。作为一款实用的软件,我们必须回归到实践中来,这样才能更好地理解 Docker 的实用逻辑和背后的原理。在这一小节里,我们就举一个完整的例子,让大家跟随这个项目的脉络,熟悉如何通过 Docker 和 Docker Compose 来搭建应用开发环境。
领取专属 10元无门槛券
手把手带您无忧上云