深入浅出Docker(五):基于Fig搭建开发环境

深入浅出Docker系列 深入浅出系列 深入浅出Docker(一):Docker核心技术预览深入浅出Docker(二):Docker命令行探秘深入浅出Docker(三):Docker开源之路深入浅出Docker(四):Docker的集成测试部署之道深入浅出Docker(五):基于Fig搭建开发环境 源码分析系列 Docker源码分析(一):Docker架构Docker源码分析(二):Docker Clie 阅读详情

【编者按】Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源。Docker提供了一种在安全、可重复的环境中自动部署软件的方式,它的出现拉开了基于云计算平台发布产品方式的变革序幕。为了更好的促进Docker在国内的发展以及传播,我们决定开设《深入浅出Docker》专栏,邀请Docker相关的布道师、开发人员、技术专家来讲述Docker的各方面内容,让读者对Docker有更深入的了解,并且能够积极投入到新技术的讨论和实践中。另外,欢迎加入InfoQ Docker技术交流群交流Docker的最佳实践,QQ群号:365601355。

1. 概述

在搭建开发环境时,我们都希望搭建过程能够简单,并且一劳永逸,其他的同事可以复用已经搭建好的开发环境以节省开发时间。而在搭建开发环境时,我们经常会被复杂的配置以及重复的下载安装所困扰。在Docker技术未出现之前,我们可以使用Pupet、Chef、Ansible等配置管理工具把复杂的配置管理起来,这样的管理配置技术仍然是目前比较流行的方式之一。配置管理工具使用的都是自己的DSL语法定义,考虑到环境的复杂性,配置一套通用的开发环境需要针对各个系统定制,对于大部分开发环境这种维护成本仍然是很高的。Docker技术出现之后,系统的依赖问题得到了彻底的解决,我们可以通过镜像的方式简化环境的安装。结合Docker的开发部署工具Fig,我们可以使用fig.yml文件来定义所有的环境,一次定义,多处使用,简单而且高效。

1.1 打包的方式

Docker本省并不能创建一个真实的虚拟机,它只是基于Linux Kernel把额外的系统文件做了封装,并利用Linux Kernel相关的技术如Cgroup、Namespace隔离用户应用。应用Docker技术,团队之间通过共享Image或者Dockefile来复用开发环境。为了简化写Dockerfile的方式 ,Fig提供更加精简的DSL定义文件fig.yml,可以让新成员快速搭建开发环境并将精力投入到开发过程中去,而不是研究如何正确安装并配置诸如PostgreSQL之类的数据库。目前,软件开发需要的环境Image,大部分都可以在Docker Hub中搜索到,需要使用时直接下载就可以使用。

1.2 应用组合的方式

使用Docker之后,我们不再需要在本地机器安装所有的软件包。我们可以根据项目需要在Docker Hub上搜索相关软件的Image,然后使用Fig pull从Docker Hub上直接下载并由Fig调用Docker的Link命令把Image关联起来,这样所有应用都可以直接调用指定端口的服务,比如Mysql的3306端口提供数据库服务。开发者并不需要对Docker有太多的了解,只需要掌握常用的几条Fig命令就可以随时调试自己的环境。

1.3 环境共享的方式

Fig直接定义好了Image,我们不需要过多的关心容器或者镜像。在分享环境时,只需要把对应的Dockerfile和fig.yml文件分享给同事,他们就可以在自己的机器上运行并搭建出需要的环境,且不用再担心环境依赖带来的意外调试烦恼。团队成员在git clone项目代码后,就可以如下图一样使用一条命令启动自己的开发环境:

2. Fig安装指南

首先,我们需要安装Docker Engine,官方针对主流的系统提供了对应的安装手册。这里,我的开发机系统是一台MacBook Pro,所以我需要安装boot2docker来支持Docker。

接下来,我们就可以安装对应系统版本的Fig运行文件。比如在Mac OS或者在64位的Linux上安装Fig:

$ curl -L https://github.com/docker/fig/releases/download/1.0.0/fig-`uname 
-s`-`uname -m` > /usr/local/bin/fig; chmod +x /usr/local/bin/fig

当以上的安装方式不能成功的话,我们可以选择使用Python Package的安装方式:

$ sudo pip install -U fig

最后,不管使用什么Linux系统,安装完Fig之后通过运行以下命令来确保环境的一致性。

$ fig --version

如果一切顺利的话,恭喜你,Fig安装成功了。下面请随我一起学习如何使用Fig配置开发环境。

3. Rails开发环境配置详解

我们来配置一套最常用的Rails+PostgreSQL项目。

第一步,确保Fig已经正确的安装到主机系统,如果还没有,请参考上一章节的安装指南。

第二步,在项目根目录下存放一个名为 Dockerfile 文件:

FROM ruby
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
RUN bundle install
ADD . /myapp

第三步,创建一个 Gemfile 文件用来定义Rails软件包。 内容如下所示:

source 'https://rubygems.org'
gem 'rails', '4.0.2'

第四步,创建一个fig.yml文件,并使用以下配置文件来做最后的环境初始化。

db:
  image: postgres
  ports:
    - "5432"
web:
  build: .
  command: bundle exec rackup -p 3000
  volumes:
    - .:/myapp
  ports:
    - "3000:3000"
  links:
    - db

第五步,当前你目录下空空如也,使用如下命令可以生成一套Rails项目骨架:

$ fig run web rails new . --force --database=postgresql --skip-bundle

当你跑完以上命令,你就会得到一个崭新的Rails项目。

$ ls
Dockerfile Rakefile config fig.yml public vendor
Gemfile app config.ru lib test
README.rdoc bin db log tmp

编辑一下Gemfile文件,去掉therubyracer包的注释, 让Rails依赖的Javascript的运行时环境。

gem 'therubyracer', platforms: :ruby

所有的文件编辑都做完之后,运行命令创建开发环境image。

$ fig build

运行完build命令后,我们就有了可以立即使用的Image。这两个Image的名字分别是web和db。为了让db能连上web,我们通常还需要修改database.yml来支持数据库连接。

development: &default adapter: postgresql encoding: unicode database: postgres pool: 5 username: postgres password: host: db test: <<: *default database: myapp_test

好了,让我们运行一下:

$ fig up

命令行将显示如下日志:

Recreating figtest_db_1...
Creating figtest_web_1...
Attaching to figtest_db_1, figtest_web_1
db_1  | LOG:  database system was shut down at 2014-10-01 23:53:11 UTC
db_1  | LOG:  autovacuum launcher started
db_1  | LOG:  database system is ready to accept connections
web_1 | [2014-10-01 23:53:16] INFO  WEBrick 1.3.1
web_1 | [2014-10-01 23:53:16] INFO  ruby 2.1.2 (2014-05-08) [x86_64-linux]
web_1 | [2014-10-01 23:53:16] INFO  WEBrick::HTTPServer#start: pid=1 port=3000
db_1  | FATAL:  database "myapp_development" does not exist
db_1  | FATAL:  database "myapp_development" does not exist
web_1 | 192.168.59.3 - - [01/Oct/2014 23:53:40] "GET / HTTP/1.1" 500 13476 0.5112
web_1 | 192.168.59.3 - - [01/Oct/2014 23:53:40] "GET %2Ffavicon.ico HTTP/1.1" 200 - 0.0067

通过以上日志可以知道开发数据库还没有创建。这时我们可以开启另外一个terminal,创建开发数据库:

$ fig run web rake db:create

当以上所有步骤都成功运行后,就需要来验证开发环境的正确性了。通过访问http://localhost:3000/ 我们应该可以看到熟悉的Rails欢迎页面:

4. Django开发环境配置详解

接下来让我们使用Fig来配置一套运行Django/PostgreSQL的应用程序吧。

首先我们新建一个项目目录,并在目录里创建3个文件。第一个文件是Docker镜像的定义文件: Dockerfile,用来描述安装在Docker容器里软件依赖关系。文件如下:

FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

以上文件描述这个Image将安装requirements.txt指定的python依赖包。

第二个文件是requirements.txt,它是python依赖包定义描述文件,内容如下:

Django
psycopg2

最后,Fig需要把所有的环境都连接起来运行。这个文件名为 fig.yml 。它描述项目需要的服务组件、指定镜像的版本、如何连接服务、什么卷可以被载入容器内部、什么端口可以暴露出来等。内容形如:

db:
  image: postgres
web:
  build: .
  command: python manage.py runserver 0.0.0.0:8000
  volumes:
    - .:/code
  ports:
    - "8000:8000"
  links:
    - db

到此处,我们就可以使用 fig run 来创建一个Django项目了:

$ fig run web django-admin.py startproject figexample .

当你运行完之后,可以在当前目录下看到创建的新项目文件:

$ ls
Dockerfile fig.yml figexample manage.py requirements.txt

接下来的事情就是创建数据库链接,修改 figexample/settings.py 的DATABASES = ...部分。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'postgres',
        'USER': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

这个配置信息是用来连接postgres镜像服务。

然后,运行命令 fig up来启动容器。

Recreating myapp_db_1...
Recreating myapp_web_1...
Attaching to myapp_db_1, myapp_web_1
myapp_db_1 |
myapp_db_1 | PostgreSQL stand-alone backend 9.1.11
myapp_db_1 | 2014-01-27 12:17:03 UTC LOG:  database system is ready to accept connections
myapp_db_1 | 2014-01-27 12:17:03 UTC LOG:  autovacuum launcher started
myapp_web_1 | Validating models...
myapp_web_1 |
myapp_web_1 | 0 errors found
myapp_web_1 | January 27, 2014 - 12:12:40
myapp_web_1 | Django version 1.6.1, using settings 'figexample.settings'
myapp_web_1 | Starting development server at http://0.0.0.0:8000/
myapp_web_1 | Quit the server with CONTROL-C.

这个时候,你可以开启浏览器,然后输入 localhost:8000 就可以访问这个Django应用。

注意,当你跑起来应用之后,就可以初始化数据库了。这里,请一定要保证fig up是在运行中,并另外开启一个命令行窗口执行一下命令:

$ fig run web python manage.py syncdb

如果你反复使用了fig up之后,可以体会到它一次性会把web和db两个镜像一起启动,如果你CONTROL-C之后,数据库也会停止服务。你甚至可以fig run web /bin/bash的方式直接进入到容器里看看。

5. Wordpress开发环境配置详解

Fig一样可以应付PHP应用的开发需求。

首先,创建一个Dockerfile来支持生成开发用Image。

$ curl https://wordpress.org/latest.tar.gz | tar -xvzf -

以上这条命令创建名为 wordpress 的目录。进入到此目录,创建镜像文件 Dockerfile,内容如下:

FROM stackbrew/ubuntu:13.10
RUN apt-get update && apt-get install php5 php5-mysql -y
ADD . /code

下一步创建 fig.yml,它将定义出web服务和mysql db服务。

web:
  build: .
  command: php -S 0.0.0.0:8000 -t /code
  ports:
    - "8000:8000"
  links:
    - db
  volumes:
    - .:/code
db:
  image: mysql
  environment:
    MYSQL_DATABASE: wordpress
    MYSQL_ROOT_PASSWORD: wordpress

wordpress有一个支持文件需要修改,它是wp-config.php:

<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'root');
define('DB_PASSWORD', 'wordpress');
define('DB_HOST', getenv("DB_1_PORT_3306_TCP_ADDR") . ":" . getenv("DB_1_PORT_3306_TCP_PORT"));
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

$table_prefix  = 'wp_';
define('WPLANG', '');
define('WP_DEBUG', false);

if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

require_once(ABSPATH . 'wp-settings.php');

以上三个文件都修改后,就可以在此目录下运行 fig up来启动wordpress。可以使用浏览器访问localhost:8000 浏览Wordpress首页。

6. 结论

通过Fig来构建基于Docker的开发环境可以让我们的开发事半功倍。其实如果读者按照我的步骤一步一步搭建开发环境,仍然会有很多挑战。

首先,因为国内带宽的限制,从官方下载Image是一个长时间等待的过程。即使Docker公司已经使用了CDN服务,但在国内网络使用仍然很慢。为了能快速下载,我还常备一条VPN线路作为数据通道来下载Image。目前这是最理想的方式,可以节省很多开发时间。

第二,fig up并不能保证Image能一次成功。但不需要灰心。你可以fig run web /bin/bash直接到容器里面调试。我遇到过多次费解的问题都是直接在里面跑命令解决的。当你退出时,fig会自动更新到相应的Image里。当你再次fig up,它会使用新Image去创建这个运行容器。

第三,fig up会创建两个以上的容器实例,在退出容器后再次启动fig up,并不会重用之前退出的容器实例,而是新建容器实例。像fig up这类常用命令运行多次之后会导致过期的容器文件仍然存储在你的开发机器上并占用硬盘空间,并且Fig还没有提供对应的命令自动清理它们。目前可以解决的办法是直接使用Docker rm/rmi命令手工清除。

以上总结出的实战经验,仍然不能掩盖Fig特有的亮点:运用Fig可以定义统一运行步骤,让部署环境可以完全的隔离在一个独立的容器环境里,并且这个隔离环境可以在开发、测试、生产多个步骤中保持一致。当前Fig项目还很年轻,需要大家多参与项目的讨论,提出自己的问题才能让Fig更好使用,更多信息可以到这里查阅。

7. 作者简介

肖德时, Red Hat Engineering Service/HSS 内部工具组Team Leader。Nodejs开源项目nodejs-cantas Lead Developer。擅长企业内部工具的设计以及实现。开源课程Rails Starter的发起人。rubygem: lazy_high_charts的Maintainer。Twitter账号:xds2000,邮箱:xiaods@gmail.com

8.下期预告

Docker引擎可以在多台主机上启动成千上百的实例,那么如何管理这些容器实例显然会成为一个挑战。所以下期我将给大家介绍一款非常出色的容器集群管理框架Kubernetes,敬请期待!

Docker的fig简介 以上的内容首先告诉 Docker 在容器里面安装 Python ,代码的路径还有Python 依赖包。这个实验假设你已经知道一些 Python 知识,如果你不熟悉,但清楚概念上的东西也是没有问题的。这个 web 应用已经开始在你的 docker 守护进程里面监听着 5000 端口了(如果你有使用 boot2docker ,执行。,这是一个能够让 Redis 上的一个值自增的简单 web 应用,基于 Flask 框架。,然后 Fig 就会启动并运行你的应用了。如果你想要在后台运行你的服务,可以在执行。 阅读详情

相关推荐

MediaPipe实战:从零构建人脸关键点检测应用

本文详细介绍了如何使用Google的MediaPipe框架从零构建一个实时人脸关键点检测应用。文章深入剖析了MediaPipe的三段式检测流水线,提供了Android平台的完整实战教程,包括环境配置、模型加载、摄像头集成、关键点绘制以及性能调优指南,帮助开发者快速实现高效、跨平台的人脸AR特效与交互功能。

weixin_29100927的博客 339

ThinkPhp6学习笔记

ThinkPhp6学习笔记

weixin_46398352的博客 729

从零搭建高通8255车载开发环境:QNX SDP、SDK配置与镜像编译全流程

本文详细介绍了如何从零搭建高通SA8255P车载开发环境,涵盖QNX SDP部署、SDK工具链配置到多系统镜像编译的全流程。特别针对SAIL安全岛镜像构建、QNX系统优化及Android系统资源分配等关键技术点提供实战指导,帮助开发团队高效完成车载系统开发与调试。

weixin_33582311的博客 364

数据同步命令千千万,我却独爱它一个

若干年前,我曾对面试者问出过一个类似的问题:有哪些远程传输文件的命令?他的回答令我非常意外:答:使用rz或sz我:如果没有xshell之类的软件呢?答:那就下载一个我:emmmm.......,还有其他命令么?答:不会了我:emmmm.......虽然标题里的千千万有些夸张,但跨主机传输文件的命令可是真不少的。下面就来介绍些我曾经用过的那些文件传输命令吧!通过介绍的内容占比大家也可以看出来,我最爱的命令是rsync,但我并不是所有场景都使用它我最常用的其实是scp。

不定时分享最优质的网络技术与教程,满满的干货。 449

PPO(Proximal Policy Optimization)算法原理及实现,详解近端策略优化

接着上面的讲,PG方法一个很大的缺点就是参数更新慢,因为我们每更新一次参数都需要进行重新的采样,这其实是中on-policy的策略,即我们想要训练的agent和与环境进行交互的agent是同一个agent;与之对应的就是off-policy的策略,即想要训练的agent和与环境进行交互的agent不是同一个agent,简单来说,就是拿别人的经验来训练自己。举个下棋的例子,如果你是通过自己下棋来不断提升自己的棋艺,那么就是on-policy的,如果是通过看别人下棋来提升自己,那么就是off-policy的。

weixin_41106546的博客 9万+

AD服务器搭建

一、角色安装1)打开服务器管理器,添加 角色和功能;2) 点 下一步;3)点 下一步;4)点 下一步;5)点击安装;6-1)将此服务器提升为域控制器;6-2)点下一步;6)输入密码 点 下一步;7)自动生成LIXF,点击下一步;8)确认目录,点下一步;8)确认安装条件,点安装; 8)安装成功,点关闭;...

潇峰的博客 6441

Fig : 一款超高颜值和功能强大的终端自动补全工具

公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !Fig是一个可以在你的终端中添加自动补全命令的提示工具,当你在操作终端的时候,Fig 可以在你的终端中弹出子命令、选项和上下文相关的参数。Fig 并不是一个独立的终端,而是与你现有的终端工具进行集成。现在已经支持近300多种 CLI 工具的补全提示,比如 cd、git、docker、npm...

easylife206的专栏 9303

GPU八卡A100使用INT4-W4A16量化大模型实验

本实验旨在探索在环境下,对大语言模型进行权重量化的可行性、效率与性能影响。通过采用工具集成 GPTQ 算法,实现对所有线性层的权重量化(W4A16 方案最终通过lm-eval工具在GSM8K任务上对压缩模型进行评估。

goodgood_UP的博客 1904

Docker的fig

在你的应用里面添加一个fig.yml文件,并指定一些简单的内容,执行fig up它就能帮你快速建立起一个容器。

2301_76599986的博客 177

31.华为路由器:PPPOE配置模拟实验及NAT配置

实验环境 pppoe-client上面的接口信息 [AR1]dis ip interface brief *down: administratively down ^down: standby (l): loopback (s): spoofing The number of interface that is UP in Physical is 2 The number of interface that is DOWN in Physical is 1 The number of interface

迷逝 8116

高效批量转换Java接口为MCP服务:降低重复劳动的实战指南

高效批量转换Java接口为MCP服务:降低重复劳动的实战指南

专注于编程、AI、人工智能等多个领域内容研究和分析 722

Docker的Fig

快速搭建基于 Docker 的隔离开发环境web:*注意不需要再额外安装 Postgres 了!启动、停止,和重建服务查看服务的运行状态查看运行中的服务的输入日志对服务发送命令快速上手我们试着让一个基本的 Python web 应用运行在 Fig 上。这个实验假设你已经知道一些 Python 知识,如果你不熟悉,但清楚概念上的东西也是没有问题的。首先,安装 Docker 和 Fig为你的项目创建一个目录。

weixin_51705943的博客 830

UGUI合批杀手:Mask/RectMask2D为何必断合批?

颜色缓冲负责记录像素颜色;模板缓冲负责记录“这个像素的模板值”(一个小整数);渲染时,你可以设定:只有模板值为 X 的地方才允许画;或者往某些区域写特定的模板值。类似于:先拿一支隐形笔在纸上画出一块区域,给它记一个编号“1”,后面的涂色动作只允许涂在“编号为1”的区域上。合批的前提:渲染状态不变,连续元素能一口气画完。材质、贴图、混合模式、Stencil、裁剪区域……都得一致。Mask / RectMask2D 的本质:在渲染状态上加规则——“只在某个区域内允许写像素”。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 117

Docker实践3:fig搭建mediawiki

fig,无花果。fig项目源自docker,可以认为是快速搭建基于Docker的隔离开发环境的工具。一、安装fig$ mkdir docker; cd docker $ curl -L https://github.com/docker/fig/releases/download/1.0.1/fig-`uname -s`-`uname -m` > fig $ sudo chmod +x fig

懒人的技术笔记 5730

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

深入浅出Docker

深入浅出Docker(一):Docker核心技术预览 深入浅出Docker(二):Docker命令行探秘 深入浅出Docker(三):Docker开源之路 深入浅出Docker(四):Docker的集成测试部署之道 深入浅出Docker(五):基于Fig搭建开发环境 深入浅出Docker(五):基于Fig搭建开发环境 深入

wise_zhe的专栏 2015

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Docker实践笔记四:fig搭建mediawiki

fig,无花果。fig项目源自docker,可以认为是快速搭建基于Docker的隔离开发环境的工具。 一、安装fig $ mkdir docker; cd docker $ curl -L https://github.com/docker/fig/releases/download/1.0.1/fig-`uname -s`-`uname -m` &gt; fig $ sudo ch...

笑桐笔记的博客 643

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

fig normed_使用Fig的Docker编排

fig normed 技术提示65展示了如何在两个单独的容器中使用WildFly和MySQL运行Java EE 7应用程序。 它需要显式启动两个容器,并使用--link链接它们。 定义和控制多容器服务是一种常见的设计模式,目的是使应用程序正常运行。 认识Fig – Docker Orchestration工具。 图允许: 在一个配置文件中定义多个容器 通过在两个容器之间创建链...

danpob13624的博客 171

【docker】fig开源项目

今天分析fig开源项目。

one_clouder的专栏 933

Docker 编排工具 Fig 介绍

Docker 编排工具 Fig 介绍 【编者的话】Fig是一个基于Docker的用于快速搭建开发环境的工具,目前Fig团队已经加入Docker公司。Fig通过一个配置文件来管理多个 Docker容器,非常适合组合使用多个容器进行开发的场景。Fig可以和Docker一起来构建基于Docker的复杂应用。本文详细介绍了Fig的安装以及使用。 什么是编排?...

weixin_34162629的博客 229

使用Fig的Docker编排

技术提示65显示了如何在两个单独的容器中使用WildFly和MySQL运行Java EE 7应用程序。 它需要显式启动两个容器,并使用--link链接它们。 定义和控制多容器服务是一种常见的设计模式,目的是使应用程序正常运行。 认识Fig – Docker Orchestration工具。 图允许: 在一个配置文件中定义多个容器 通过在两个容器之间创建链接来创建它们之间的依...

danpob13624的博客 298

Docker 实战:Docker的fig简介

通过一个配置文件,可以快速创建和管理多个相互依赖的服务容器,例如数据库、Web服务器、缓存服务等。服务,它监听宿主机的 8000 端口并将请求转发到容器内的 8000 端口,同时它依赖于。文件确保了环境的一致性和可复现性,任何团队成员都可以根据该文件来重现相同的应用部署环境。),开发者可以轻松地配置服务、网络和数据卷等,并一次性启动整个应用的所有相关组件。:可以定义容器间的数据卷共享,以及网络通信方式,如是否在同一桥接网络内进行通信。:自动处理容器之间的依赖关系,按照正确顺序启动和停止容器。

qq_33240556的博客 468

Docker 实战:Docker中Fig命令参考

Fig 是一个早期的容器编排工具,后来被 Docker 公司收购并发展为现在的 Docker Compose。如果你是在寻找 Docker Compose 相关的命令参考,请看以下基本的。记得在使用这些命令前,确保在项目目录下有一个有效的。文件,该文件定义了服务、网络以及数据卷等配置信息。命令在 Docker 中已经被。

qq_33240556的博客 672

docker fig mysql_Docker Fig实战 wordpress

使用 Wordpress 入门 FigFig 让 Wordpress 运行在一个独立的环境中很简易。 安装 Fig ,然后下载 Wordpress 到当前目录:wordpress.org/latest.tar.gz | tar -xvzf -这将会创建一个叫 wordpress 目录,你也可以重命名成你想要的名字。在目录里面,创建一个 Dockerfile 文件,定义应用的运行环境:FROM or...

weixin_42512936的博客 177
上一篇: 深入浅出Docker(四):Docker的集成测试部署之道
下一篇: Visio 方向键 对象不能移动
dodott
博客等级 码龄22年 60粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值