SlideShare a Scribd company logo
1 of 16
Download to read offline
the study of Fig
-Orchestration tool of docker-
July,30,2014
Tadayasu Yotsu
July,30,2014 Docker inc announced to aquire Orchard
Laboratories Ltd. This is assumed that 「Fig」which is
orchestration tool for docker will be standard tool.
Recently, there are some orchestration tools such as
kubernetes. I am interested in orchestration tool, so
I try to study it.
First of all, I will run fig by reading fig home
page(http://www.fig.sh/index.html).
Install
まずはdockerのversion1.0以降をインストール。
実行環境はAWS EC2、RHEL6.5
$ sudo yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-
release-6-8.noarch.rpm	
$ sudo yum -y install docker-io	
$ docker -v	
Docker version 1.0.0, build 63fe64c/1.0.0	
$ sudo service docker start	
次にFigをインストール。
$ curl -L https://github.com/orchardup/fig/releases/download/0.5.1/linux > fig	
$ sudo mv fig /usr/local/bin/	
$ sudo chmod +x /usr/local/bin/fig	
$ fig --version	
fig: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /tmp/
_MEIlZ8Qx8/libz.so.1)
glibcのバージョンをアップデートするのは面倒なので、python版をインストール
$ python -V	
Python 2.7.8	
$ sudo pip install -U fig
glibcのバージョンをアップデートするのは面倒なので、python版をインストール
$ python -V	
Python 2.7.8	
$ wget https://pypi.python.org/packages/source/s/setuptools/
setuptools-5.4.1.tar.gz	
!
$ cd setuptools-5.4.1	
$ python setup.py install	
$ easy_install pip	
$ pip2 install -U fig	
$ fig --version	
fig 0.5.1a	
インストールはこれで完了
Get started with Django
Figのセットアップを行い、Django/PostgreSQLアプリの実行を行う。
始める前に3つのファイルの設定を行う。
まず最初にアプリケーションはアプリに実行に必要なものを含んだdockerコ
ンテナ内で実行する予定である。そのためdockerコンテナ内で何を実行する
のかDockerfileを使用して定義する。
FROM orchardup/python:2.7	
ENV PYTHONUNBUFFERED 1	
RUN apt-get update -qq && apt-get install -y python-psycopg2	
RUN mkdir /code	
WORKDIR /code	
ADD requirements.txt /code/	
RUN pip install -r requirements.txt	
ADD . /code/
これでimageの中にアプリケーションがインストールされる。
次にPythonの依存性をrequirements.txtで定義する。
Django
シンプルだけど、これで十分。
最後にこれら全てをfig.ymlと呼ばれるファイルでくっつける。アプリケーションがWeb
Serverとデータベースのサービスで構成されることを定義する。そしてどのDockerイメー
ジを使用し、どのようにリンクするか、コンテナ内でどのvolumeをマウントするか、そし
てどのポートをexposeするかを定義する。
手順書には記載されてないが、このDockerfileでコンテナが起動するか確認
$ sudo docker build -t test .	
Sending build context to Docker daemon 2.56 kB	
Sending build context to Docker daemon 	
Step 0 : FROM orchardup/python:2.7	
Pulling repository orchardup/python	
cdc18ed4ed6f: Download complete 	
511136ea3c5a: Download complete 	
5e66087f3ffe: Download complete 	
4d26dd3ebc1c: Download complete 	
d4010efcfd86: Download complete 	
99ec81b80c55: Download complete 	
---> cdc18ed4ed6f	
Step 1 : ENV PYTHONUNBUFFERED 1	
---> Running in 704a8a850a45	
Step 4 : WORKDIR /code	
---> Running in 33098624aa98	
---> 1497430bfa1d	
Removing intermediate container 33098624aa98	
Step 5 : ADD requirements.txt /code/	
2014/08/02 01:46:40 requirements.txt: no such file or directory
pip installでくわせてるrequirements.txtが必要だと言われ失敗。そりゃそうだ。とりあえず手順書に従って次へ進める。
db:	
image: orchardup/postgresql	
web:	
build: .	
command: python manage.py runserver 0.0.0.0:8000	
volumes:	
- .:/code	
ports:	
- "8000:8000"	
links:	
- db
最後にこれら全てをfig.ymlと呼ばれるファイルでくっつける。アプリケーショ
ンがWeb Serverとデータベースのサービスで構成されることを定義する。そし
てどのDockerイメージを使用し、どのようにリンクするか、コンテナ内でどの
volumeをマウントするか、そしてどのポートをexposeするかを定義する。
fig.ymlの詳細はhttp://www.fig.sh/yml.htmlを参照。
とりあえず作成するファイルはこれで全て。
$ pwd	
/home/ec2-user/fig	
$ ls	
Dockerfile fig.yml requirements.txt
db:	
image: orchardup/postgresql	
web:	
build: .	
command: python manage.py runserver 0.0.0.0:8000	
volumes:	
- .:/code	
ports:	
- "8000:8000"	
links:	
- db
最後にこれら全てをfig.ymlと呼ばれるファイルでくっつける。アプリケーショ
ンがWeb Serverとデータベースのサービスで構成されることを定義する。そし
てどのDockerイメージを使用し、どのようにリンクするか、コンテナ内でどの
volumeをマウントするか、そしてどのポートをexposeするかを定義する。
fig.ymlの詳細はhttp://www.fig.sh/yml.htmlを参照。
とりあえず作成するファイルはこれで全て。
$ pwd	
/home/ec2-user/fig	
$ ls	
Dockerfile fig.yml requirements.txt
# fig run web django-admin.py startproject figexample .	
Creating fig_db_1...	
Pulling image orchardup/postgresql…	
省略	
Building web...	
---> Using cache	
---> 648d5cf80800	
Step 2 : RUN apt-get update -qq && apt-get install -y python-psycopg2	
---> Using cache	
---> af5aedf45f81	
Step 3 : RUN mkdir /code	
---> Using cache	
---> 93dd07412b09	
Step 4 : WORKDIR /code	
---> Using cache	
---> 1497430bfa1d	
Step 5 : ADD requirements.txt /code/	
---> 2b8a2b0f1df7	
Removing intermediate container 7c7d76a6bf7a	
Step 6 : RUN pip install -r requirements.txt	
---> Running in 1dfba113bb7f	
Downloading/unpacking Django (from -r requirements.txt (line 1))	
Installing collected packages: Django	
Successfully installed Django	
Cleaning up...	
---> 2d2464646cf6	
Removing intermediate container 1dfba113bb7f	
Step 7 : ADD . /code/	
---> a38ea44a1f49	
Removing intermediate container 6c1d8cd2ac06	
Successfully built a38ea44a1f49	
# ls	
Dockerfile fig.yml figexample manage.py requirements.txt
それではfig runを使ってDjango Projectを起動してみる。
Figは最初にDockerfileを使っ
てWeb Serviceのためのイメー
ジをビルドする。それからコンテ
ナの中で”django-admin.py
startproject figexample .”
コマンドを実行する。
実行後のカレントディレクトリに
Djangoアプリが生成される。
# docker images	
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE	
fig_web latest a38ea44a1f49 13 minutes ago 550.9 MB	
orchardup/postgresql latest ca3d005ec1e8 5 hours ago 478 MB	
orchardup/postgresql 9.1 f9686ed36bcb 5 hours ago 318 MB	
orchardup/postgresql 9.3 8096d940fd75 4 days ago 477.9 MB	
centos centos6 0c752394b855 7 weeks ago 124.1 MB	
centos latest 0c752394b855 7 weeks ago 124.1 MB	
orchardup/python 2.7 cdc18ed4ed6f 9 weeks ago 514.3 MB	
centos 6.4 539c0211cd76 16 months ago 300.6 MB
fig_web,orchardup/postgresql x3/orchardup/
pythonのイメージが追加されている。
# docker ps	
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES	
479c8630b668 orchardup/postgresql:latest /usr/local/bin/run 17 minutes ago Up 17
minutes 5432/tcp fig_db_1,fig_web_run_1/db_1,fig_web_run_1/fig_db_1
起動しているコンテナはorchardup/postgresqlのみ。
DATABASES = {	
'default': {	
'ENGINE': 'django.db.backends.postgresql_psycopg2',	
'NAME': 'docker',	
'USER': 'docker',	
'PASSWORD': 'docker',	
'HOST': os.environ.get('DB_1_PORT_5432_TCP_ADDR'),	
'PORT': os.environ.get('DB_1_PORT_5432_TCP_PORT'),	
}	
}
データベース接続のセットアップを行う。figexample/settings.pyファイ
ルの”DATABASES=…”を修正する。
これらの設定はorchardup/postgresql Dockerイメージによって
定義されている。
# fig up	
Recreating fig_db_1...	
Creating fig_web_1...	
Attaching to fig_db_1, fig_web_1	
db_1 | 2014-08-02 07:03:38 GMT ERROR: role "docker" already exists	
db_1 | 2014-08-02 07:03:38 GMT STATEMENT: CREATE USER docker WITH SUPERUSER;	
db_1 | 		
db_1 | 2014-08-02 07:03:39 GMT ERROR: database "docker" already exists	
db_1 | 2014-08-02 07:03:39 GMT STATEMENT: CREATE DATABASE docker OWNER docker TEMPLATE DEFAULT;	
db_1 | 		
db_1 | 2014-08-02 07:03:39 GMT LOG: database system was shut down at 2014-08-02 07:03:39 GMT	
db_1 | 2014-08-02 07:03:39 GMT LOG: autovacuum launcher started	
db_1 | 2014-08-02 07:03:39 GMT LOG: database system is ready to accept connections	
web_1 | Validating models...	
web_1 | 	
web_1 | 0 errors found	
web_1 | August 02, 2014 - 07:03:40	
web_1 | Django version 1.6.5, using settings 'figexample.settings'	
web_1 | Starting development server at http://0.0.0.0:8000/	
web_1 | Quit the server with CONTROL-C.
”fig up”を実行する。
ブラウザでlocalhost:8000にアクセスし、Djangoのページが表示されるか確認する。
※ちなみにEC2ではDefaultでX11fowardingが有効になっておらずライブラリも足り
てないのでインストールする必要がある。
$ sudo yum install xorg-x11-xauth.x86_64 xorg-x11-server-utils.x86_64 firefox
# fig run web python manage.py syncdb	
Creating tables ...	
Creating table django_admin_log	
Creating table auth_permission	
Creating table auth_group_permissions	
Creating table auth_group	
Creating table auth_user_groups	
Creating table auth_user_user_permissions	
Creating table auth_user	
Creating table django_content_type	
Creating table django_session
Dockerに対して管理コマンドを実行。
fig upを実行してデータベースのセットアップを行う。
とりあえず、ここまでがドキュメントに記載されている内容。定義ファイルを書い
てfigコマンドを実行するだけで環境が作れるので便利だと思うが、1つのコンテ
ナだけだとあまりありがたみが分からないので、次回は複数のコンテナで試してみ
る。
fig.yml Reference
fig.ymlで定義された各サービスはimageもしくはbuildをちゃんと指定しなければな
らない。 他のキーはオプションで、docker runコマンドラインの機能に類似してい
る。
docker runと同様にDockerfile (e.g. CMD, EXPOSE, VOLUME, ENV) で指定
されるオプションはデフォルトで尊重される。fig.ymlで再び指定する必要はない。※
訳が変になったが、要するにfig.ymlよりもDockerfileの方が優先されるっぽい。
Tag
image
タグもしく部分一致のイメージ
モートを指定可能。ローカルに存在しない場合、
Fig
image: ubuntu
image: orchardup/postgresql
image: a4bc65fd
build
Dockerfile
生成された名前を持ってビルドとタグ付けをし、そ
の後そのイメージを利用する。
build: /path/to/build/dir
command デフォルトのコマンドをオーバライドさせる。 command: bundle exec thin -p 3000
links
別のサービス中のコンテナへのリンク。リンクの別
名を指定できる。それはどの環境変数が
を定義する。
db -> DB_1_PORT
db:database -> DATABASE_1_PORT
links:
- db
- db:database
- redis
ports
Expose ports.
を指定するか、コンテナだけのポート
random host port will be chosen)
ports:
- "3000"
- "8000:8000"
- "49100:22"
- "127.0.0.1:8001:8001"
expose
Expose ports
い)
expose:
- "3000"
- "8000"
volumes
ボリュームとしてマウントするパス。ホ
ストマシン上のパスも指定可能。
(HOST:CONTAINER).
!
volumes:
- /var/lib/mysql
- cache/:/tmp/cache
volumes_from
他のサービスやコンテから全てのボリュ
ームをマウント。
volumes_from:
- service_name
- container_name
environment
環境変数を追加。配列や辞書を使用可
能。キーだけしかない環境変数でも
OK
は解決される。これは秘密の情報やホス
ト特有の情報を格納するのに有用。
environment:
RACK_ENV: development
SESSION_SECRET:
environment:
- RACK_ENV=development
- SESSION_SECRET
net
ネットワークモード。
の--net
指定可能
net: "bridge"
net: "none"
net: "container:[name or id]"
net: "host"
dns 独自の
dns: 8.8.8.8
dns:
- 8.8.8.8
- 9.9.9.9
working_dir
entrypoint
user
hostname
domainname
mem_limit
privileged
これらは一つの値を持ち、
run
似している。
working_dir: /code
entrypoint: /code/entrypoint.sh
user: postgresql
hostname: foo
domainname: foo.com
mem_limit: 1000000000
privileged: true

More Related Content

What's hot

Dockerでデプロイ
DockerでデプロイDockerでデプロイ
Dockerでデプロイoshiro_seiya
 
Cloud founryインストール手順
Cloud founryインストール手順Cloud founryインストール手順
Cloud founryインストール手順Kotaro Noyama
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineEtsuji Nakai
 
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002Takeshi Kuramochi
 
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSBOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSi_yudai
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2Etsuji Nakai
 
DevStackで始めるCloud FoundryとBOSH
DevStackで始めるCloud FoundryとBOSHDevStackで始めるCloud FoundryとBOSH
DevStackで始めるCloud FoundryとBOSHi_yudai
 
Nuxt.js + microCMS + netlify
Nuxt.js + microCMS + netlifyNuxt.js + microCMS + netlify
Nuxt.js + microCMS + netlifyogawatti
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Naoki Nagazumi
 
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Hidetoshi Hirokawa
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2Etsuji Nakai
 
BOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable InfrastructureBOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable Infrastructurei_yudai
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたatk1234
 
Rancher command line interface
Rancher command line interfaceRancher command line interface
Rancher command line interfaceMasahito Zembutsu
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよnpsg
 
Docker調査20150704
Docker調査20150704Docker調査20150704
Docker調査20150704HommasSlide
 
HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法Masahito Zembutsu
 
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)さくらインターネット株式会社
 

What's hot (20)

Dockerでデプロイ
DockerでデプロイDockerでデプロイ
Dockerでデプロイ
 
Openresty
OpenrestyOpenresty
Openresty
 
Cloud founryインストール手順
Cloud founryインストール手順Cloud founryインストール手順
Cloud founryインストール手順
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
 
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
 
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSBOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
 
DevStackで始めるCloud FoundryとBOSH
DevStackで始めるCloud FoundryとBOSHDevStackで始めるCloud FoundryとBOSH
DevStackで始めるCloud FoundryとBOSH
 
Nuxt.js + microCMS + netlify
Nuxt.js + microCMS + netlifyNuxt.js + microCMS + netlify
Nuxt.js + microCMS + netlify
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
 
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
 
Cloud Foundry varz
Cloud Foundry varzCloud Foundry varz
Cloud Foundry varz
 
BOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable InfrastructureBOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable Infrastructure
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
 
Rancher command line interface
Rancher command line interfaceRancher command line interface
Rancher command line interface
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
Docker調査20150704
Docker調査20150704Docker調査20150704
Docker調査20150704
 
HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法
 
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
 

Similar to Fig

Docker実践入門
Docker実践入門Docker実践入門
Docker実践入門hiro nemu
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Masahito Zembutsu
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコムTomoyaTakegoshi
 
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)NTT DATA Technology & Innovation
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...NTT DATA Technology & Innovation
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!Midori Oge
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門Tsukasa Kato
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもんMasahito Zembutsu
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするRyo Adachi
 
DockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようDockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようmookjp
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までMasahito Zembutsu
 
Docker handson
Docker handsonDocker handson
Docker handsonkoda3
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
DockerハンズオンKazuyuki Mori
 
WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築Saito5656
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1Kotaro Noyama
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルMasahito Zembutsu
 

Similar to Fig (20)

Docker実践入門
Docker実践入門Docker実践入門
Docker実践入門
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム
 
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
 
DockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようDockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみよう
 
Docker社内勉強会
Docker社内勉強会Docker社内勉強会
Docker社内勉強会
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
 
Docker handson
Docker handsonDocker handson
Docker handson
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 

Recently uploaded

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Recently uploaded (10)

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

Fig

  • 1. the study of Fig -Orchestration tool of docker- July,30,2014 Tadayasu Yotsu
  • 2. July,30,2014 Docker inc announced to aquire Orchard Laboratories Ltd. This is assumed that 「Fig」which is orchestration tool for docker will be standard tool. Recently, there are some orchestration tools such as kubernetes. I am interested in orchestration tool, so I try to study it. First of all, I will run fig by reading fig home page(http://www.fig.sh/index.html).
  • 3. Install まずはdockerのversion1.0以降をインストール。 実行環境はAWS EC2、RHEL6.5 $ sudo yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel- release-6-8.noarch.rpm $ sudo yum -y install docker-io $ docker -v Docker version 1.0.0, build 63fe64c/1.0.0 $ sudo service docker start 次にFigをインストール。 $ curl -L https://github.com/orchardup/fig/releases/download/0.5.1/linux > fig $ sudo mv fig /usr/local/bin/ $ sudo chmod +x /usr/local/bin/fig $ fig --version fig: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /tmp/ _MEIlZ8Qx8/libz.so.1) glibcのバージョンをアップデートするのは面倒なので、python版をインストール $ python -V Python 2.7.8 $ sudo pip install -U fig
  • 4. glibcのバージョンをアップデートするのは面倒なので、python版をインストール $ python -V Python 2.7.8 $ wget https://pypi.python.org/packages/source/s/setuptools/ setuptools-5.4.1.tar.gz ! $ cd setuptools-5.4.1 $ python setup.py install $ easy_install pip $ pip2 install -U fig $ fig --version fig 0.5.1a インストールはこれで完了
  • 5. Get started with Django Figのセットアップを行い、Django/PostgreSQLアプリの実行を行う。 始める前に3つのファイルの設定を行う。 まず最初にアプリケーションはアプリに実行に必要なものを含んだdockerコ ンテナ内で実行する予定である。そのためdockerコンテナ内で何を実行する のかDockerfileを使用して定義する。 FROM orchardup/python:2.7 ENV PYTHONUNBUFFERED 1 RUN apt-get update -qq && apt-get install -y python-psycopg2 RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip install -r requirements.txt ADD . /code/ これでimageの中にアプリケーションがインストールされる。
  • 6. 次にPythonの依存性をrequirements.txtで定義する。 Django シンプルだけど、これで十分。 最後にこれら全てをfig.ymlと呼ばれるファイルでくっつける。アプリケーションがWeb Serverとデータベースのサービスで構成されることを定義する。そしてどのDockerイメー ジを使用し、どのようにリンクするか、コンテナ内でどのvolumeをマウントするか、そし てどのポートをexposeするかを定義する。 手順書には記載されてないが、このDockerfileでコンテナが起動するか確認 $ sudo docker build -t test . Sending build context to Docker daemon 2.56 kB Sending build context to Docker daemon Step 0 : FROM orchardup/python:2.7 Pulling repository orchardup/python cdc18ed4ed6f: Download complete 511136ea3c5a: Download complete 5e66087f3ffe: Download complete 4d26dd3ebc1c: Download complete d4010efcfd86: Download complete 99ec81b80c55: Download complete ---> cdc18ed4ed6f Step 1 : ENV PYTHONUNBUFFERED 1 ---> Running in 704a8a850a45 Step 4 : WORKDIR /code ---> Running in 33098624aa98 ---> 1497430bfa1d Removing intermediate container 33098624aa98 Step 5 : ADD requirements.txt /code/ 2014/08/02 01:46:40 requirements.txt: no such file or directory pip installでくわせてるrequirements.txtが必要だと言われ失敗。そりゃそうだ。とりあえず手順書に従って次へ進める。
  • 7. db: image: orchardup/postgresql web: build: . command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8000" links: - db 最後にこれら全てをfig.ymlと呼ばれるファイルでくっつける。アプリケーショ ンがWeb Serverとデータベースのサービスで構成されることを定義する。そし てどのDockerイメージを使用し、どのようにリンクするか、コンテナ内でどの volumeをマウントするか、そしてどのポートをexposeするかを定義する。 fig.ymlの詳細はhttp://www.fig.sh/yml.htmlを参照。 とりあえず作成するファイルはこれで全て。 $ pwd /home/ec2-user/fig $ ls Dockerfile fig.yml requirements.txt
  • 8. db: image: orchardup/postgresql web: build: . command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8000" links: - db 最後にこれら全てをfig.ymlと呼ばれるファイルでくっつける。アプリケーショ ンがWeb Serverとデータベースのサービスで構成されることを定義する。そし てどのDockerイメージを使用し、どのようにリンクするか、コンテナ内でどの volumeをマウントするか、そしてどのポートをexposeするかを定義する。 fig.ymlの詳細はhttp://www.fig.sh/yml.htmlを参照。 とりあえず作成するファイルはこれで全て。 $ pwd /home/ec2-user/fig $ ls Dockerfile fig.yml requirements.txt
  • 9. # fig run web django-admin.py startproject figexample . Creating fig_db_1... Pulling image orchardup/postgresql… 省略 Building web... ---> Using cache ---> 648d5cf80800 Step 2 : RUN apt-get update -qq && apt-get install -y python-psycopg2 ---> Using cache ---> af5aedf45f81 Step 3 : RUN mkdir /code ---> Using cache ---> 93dd07412b09 Step 4 : WORKDIR /code ---> Using cache ---> 1497430bfa1d Step 5 : ADD requirements.txt /code/ ---> 2b8a2b0f1df7 Removing intermediate container 7c7d76a6bf7a Step 6 : RUN pip install -r requirements.txt ---> Running in 1dfba113bb7f Downloading/unpacking Django (from -r requirements.txt (line 1)) Installing collected packages: Django Successfully installed Django Cleaning up... ---> 2d2464646cf6 Removing intermediate container 1dfba113bb7f Step 7 : ADD . /code/ ---> a38ea44a1f49 Removing intermediate container 6c1d8cd2ac06 Successfully built a38ea44a1f49 # ls Dockerfile fig.yml figexample manage.py requirements.txt それではfig runを使ってDjango Projectを起動してみる。 Figは最初にDockerfileを使っ てWeb Serviceのためのイメー ジをビルドする。それからコンテ ナの中で”django-admin.py startproject figexample .” コマンドを実行する。 実行後のカレントディレクトリに Djangoアプリが生成される。
  • 10. # docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE fig_web latest a38ea44a1f49 13 minutes ago 550.9 MB orchardup/postgresql latest ca3d005ec1e8 5 hours ago 478 MB orchardup/postgresql 9.1 f9686ed36bcb 5 hours ago 318 MB orchardup/postgresql 9.3 8096d940fd75 4 days ago 477.9 MB centos centos6 0c752394b855 7 weeks ago 124.1 MB centos latest 0c752394b855 7 weeks ago 124.1 MB orchardup/python 2.7 cdc18ed4ed6f 9 weeks ago 514.3 MB centos 6.4 539c0211cd76 16 months ago 300.6 MB fig_web,orchardup/postgresql x3/orchardup/ pythonのイメージが追加されている。 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 479c8630b668 orchardup/postgresql:latest /usr/local/bin/run 17 minutes ago Up 17 minutes 5432/tcp fig_db_1,fig_web_run_1/db_1,fig_web_run_1/fig_db_1 起動しているコンテナはorchardup/postgresqlのみ。
  • 11. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'docker', 'USER': 'docker', 'PASSWORD': 'docker', 'HOST': os.environ.get('DB_1_PORT_5432_TCP_ADDR'), 'PORT': os.environ.get('DB_1_PORT_5432_TCP_PORT'), } } データベース接続のセットアップを行う。figexample/settings.pyファイ ルの”DATABASES=…”を修正する。 これらの設定はorchardup/postgresql Dockerイメージによって 定義されている。
  • 12. # fig up Recreating fig_db_1... Creating fig_web_1... Attaching to fig_db_1, fig_web_1 db_1 | 2014-08-02 07:03:38 GMT ERROR: role "docker" already exists db_1 | 2014-08-02 07:03:38 GMT STATEMENT: CREATE USER docker WITH SUPERUSER; db_1 | db_1 | 2014-08-02 07:03:39 GMT ERROR: database "docker" already exists db_1 | 2014-08-02 07:03:39 GMT STATEMENT: CREATE DATABASE docker OWNER docker TEMPLATE DEFAULT; db_1 | db_1 | 2014-08-02 07:03:39 GMT LOG: database system was shut down at 2014-08-02 07:03:39 GMT db_1 | 2014-08-02 07:03:39 GMT LOG: autovacuum launcher started db_1 | 2014-08-02 07:03:39 GMT LOG: database system is ready to accept connections web_1 | Validating models... web_1 | web_1 | 0 errors found web_1 | August 02, 2014 - 07:03:40 web_1 | Django version 1.6.5, using settings 'figexample.settings' web_1 | Starting development server at http://0.0.0.0:8000/ web_1 | Quit the server with CONTROL-C. ”fig up”を実行する。 ブラウザでlocalhost:8000にアクセスし、Djangoのページが表示されるか確認する。 ※ちなみにEC2ではDefaultでX11fowardingが有効になっておらずライブラリも足り てないのでインストールする必要がある。 $ sudo yum install xorg-x11-xauth.x86_64 xorg-x11-server-utils.x86_64 firefox
  • 13. # fig run web python manage.py syncdb Creating tables ... Creating table django_admin_log Creating table auth_permission Creating table auth_group_permissions Creating table auth_group Creating table auth_user_groups Creating table auth_user_user_permissions Creating table auth_user Creating table django_content_type Creating table django_session Dockerに対して管理コマンドを実行。 fig upを実行してデータベースのセットアップを行う。 とりあえず、ここまでがドキュメントに記載されている内容。定義ファイルを書い てfigコマンドを実行するだけで環境が作れるので便利だと思うが、1つのコンテ ナだけだとあまりありがたみが分からないので、次回は複数のコンテナで試してみ る。
  • 14. fig.yml Reference fig.ymlで定義された各サービスはimageもしくはbuildをちゃんと指定しなければな らない。 他のキーはオプションで、docker runコマンドラインの機能に類似してい る。 docker runと同様にDockerfile (e.g. CMD, EXPOSE, VOLUME, ENV) で指定 されるオプションはデフォルトで尊重される。fig.ymlで再び指定する必要はない。※ 訳が変になったが、要するにfig.ymlよりもDockerfileの方が優先されるっぽい。
  • 15. Tag image タグもしく部分一致のイメージ モートを指定可能。ローカルに存在しない場合、 Fig image: ubuntu image: orchardup/postgresql image: a4bc65fd build Dockerfile 生成された名前を持ってビルドとタグ付けをし、そ の後そのイメージを利用する。 build: /path/to/build/dir command デフォルトのコマンドをオーバライドさせる。 command: bundle exec thin -p 3000 links 別のサービス中のコンテナへのリンク。リンクの別 名を指定できる。それはどの環境変数が を定義する。 db -> DB_1_PORT db:database -> DATABASE_1_PORT links: - db - db:database - redis ports Expose ports. を指定するか、コンテナだけのポート random host port will be chosen) ports: - "3000" - "8000:8000" - "49100:22" - "127.0.0.1:8001:8001" expose Expose ports い) expose: - "3000" - "8000"
  • 16. volumes ボリュームとしてマウントするパス。ホ ストマシン上のパスも指定可能。 (HOST:CONTAINER). ! volumes: - /var/lib/mysql - cache/:/tmp/cache volumes_from 他のサービスやコンテから全てのボリュ ームをマウント。 volumes_from: - service_name - container_name environment 環境変数を追加。配列や辞書を使用可 能。キーだけしかない環境変数でも OK は解決される。これは秘密の情報やホス ト特有の情報を格納するのに有用。 environment: RACK_ENV: development SESSION_SECRET: environment: - RACK_ENV=development - SESSION_SECRET net ネットワークモード。 の--net 指定可能 net: "bridge" net: "none" net: "container:[name or id]" net: "host" dns 独自の dns: 8.8.8.8 dns: - 8.8.8.8 - 9.9.9.9 working_dir entrypoint user hostname domainname mem_limit privileged これらは一つの値を持ち、 run 似している。 working_dir: /code entrypoint: /code/entrypoint.sh user: postgresql hostname: foo domainname: foo.com mem_limit: 1000000000 privileged: true