Docker1.3판 boot2 docker+fig 시작
12076 단어 Dockerfigboot2docker
이것에 맞추기 위해 주변 도구가 업데이트되었습니다
나는 매우 편리하다고 생각해서 소개해 드리겠습니다.
Docker/boot2docker
MacOS의 파일과 컨테이너 내의 동기화가 간단해졌습니다.
또한 Docker는 exec 명령을 지원합니다.
ssh를 설치하지 않아도 용기 내에서 명령을 실행할 수 있습니다.
크다
fig
fig는 여러 Docker 컨테이너를 쉽게 관리할 수 있는 도구입니다.
간단한yaml 파일만 준비하면 컨테이너 조작을 할 수 있습니다.
예전과 뭐가 달라요?
Docker1.2 이전에 boot2 docker+fig를 사용하려면 시간이 좀 걸렸어요.
1.3부터 로컬에서 fig만 설정하면 사용할 수 있습니다.
로컬 맥에서 컨테이너 조작과 동기화를 빈틈없이 할 수 있다는 것이다.
사실 그 근처에 공을 들이기 위해Vagrant+Docker Provider를 이용해서
현지 환경과 컨테이너의 동기화 구성을 고려했다
(참조이 항목
이렇게 번거로운 일을 하지 않아도 같은 일을 간단하게 실현할 수 있다.
※ 혹은 fig 강좌는 기본적으로 이 요구를 충족시켰다.지금까지 고생이 대체 뭐길래...
사전 준비
boot2 docker를 1.3으로 증가
설치가 완료된 경우 버전 + VM을 업데이트하려면 다음 절차를 따르십시오.boot2docker upgrade
boot2docker delete
boot2docker download
boot2docker init
# 確認
boot2docker version
튜토리얼 실행
보충과 동시에 공식 사이트와 대체적으로 같은 절차로 진행해 봅시다.
디렉터리를 적당히 발굴하고 다음 파일을 놓으세요.
(기타 Rails/Django/Wordpress의 샘플)
응용 프로그램 만들기
이 스크립트는 액세스 시에만 Redis에 카운트되고 표시됩니다.
app.py
# -*- coding: utf-8 -*-
from flask import Flask
from redis import Redis
import os
app = Flask(__name__)
# ホスト=redisというのは、figが設定している/etc/hostsを参照しています。後ほど補足
# もちろん、Docker標準の環境変数を利用してもOKです
redis = Redis(host='redis', port=6379)
@app.route('/')
def hello():
redis.incr('hits')
return 'Hello World! I have been seen %s times.' % redis.get('hits')
if __name__ == "__main__":
# これはflaskの設定Tipsですが、他のコンテナから見えるようにhost="0.0.0.0"を設定する必要があります
app.run(host="0.0.0.0", debug=True)
requirements.txtflask
redis
Docker file 만들기
ptyhon:2.7 이미지 다운로드
Mac의 현재 디렉토리 아래를 컨테이너의/code에 추가
pip에 필요한python 모듈이 설치되었습니다.
DockerfileFROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
파일 만들기
fig.ymlweb: # サービス名です。この名前でコンテナにアクセスできます
build: . # ./Dockerfileを用いビルドする
command: python app.py # ビルド後のコンテナで実行するコマンド
ports:
- "5000:5000" # ポートフォワード設定。フォーマットは <ホスト側ポート>:<コンテナ側ポート>
volumes:
- .:/code # ボリューム設定。ローカル「.」を コンテナ「/code」に同期
links:
- redis:redis # リンク設定。フォーマットは <サービス名>:<エイリアス名>
redis:
image: redis # DockerRegistry上のredisイメージを用いコンテナ生成
실행하다
먼저 boot2 docker를 시작합니다.
이어서 fig로 컨테이너 가동
응용 프로그램이 실행되는지 확인합니다.
boot2docker
boot2 docker:VM 시작
호스트 boot2 docker를 시작합니다.이것은 이전과 같다.# VM起動
boot2docker up
# Docker関連の環境変数設定
# コンソールに表示された環境変数をコピペでも良いですが、
# 以下のコマンドでも良いらしい
$(boot2docker shellinit)
fig
fig 명령을 실행합니다.
대부분의 명령은 '서비스 이름' 을 매개 변수로 사용할 수 있습니다.
서비스 이름을 생략할 때 "모든 서비스"를 대상으로 명령을 실행합니다.
컨테이너 시작
fig의 현재 디렉터리에서fig 명령을 실행합니다.
(데몬 시작 시 -d 옵션 추가)
(이미지가 이미 만들어진 경우 fig start 는 OK)fig up
진정한 초회에만 이미지 다운로드 등의 상황이 발생할 수 있다
두 번째 이후에는 한순간에 컨테이너를 가동할 것이다.
샘플 응용 프로그램에 접근해 보십시오
호스트 VM의 ip를 확인한 후 curl로 액세스하십시오.
# IP確認。/etc/hostsなどに登録しておくと良いですね
boot2docker ip
# アプリにアクセス
curl 192.168.59.103:5000
(Hello World! I have been seen blah 1 times.)
컨테이너 확인(서비스)
ps 명령을 통해 확인할 수 있습니다.서비스명 등이 있어 보기 쉽다.
-q 옵션을 지정하면 컨테이너 ID가 표시됩니다.fig ps
정지하다
용기를 정지하다.fig stop
로그 표시
fig에서 용기 내의 로그를 가져올 수도 있습니다.
다음은 웹 서비스를 얻는log입니다.
# フォーマット
fig logs サービス名
# redisサービスのログ表示
fig logs redis
그리고
몇 가지 지령이 있으니 fig 지령으로 확인해 주세요.
fig에 대한 추가 정보
서비스 이름이 /etc/hosts에 반영됨
그렇지만 서비스 이름을 설정하면/etc/hosts에 반영됩니다.
살짝 확인했는데 다음 느낌으로 반영하는 것 같아요.web:
links:
- redis:redis6379
redis:
...
web_etc_hosts...
x.x.x.x figtest_web_1
x.x.x.x redis6379
x.x.x.x redis_1
x.x.x.x web
x.x.x.x web_1
x.x.x.x figtest_redis_1
...
redis_etc_hosts...
x.x.x.x figtest_redis_1
x.x.x.x redis
x.x.x.x redis_1
...
"자신의 호스트 정보"+ "링크스가 설정한 호스트 정보"를 설정한 것 같습니다.
캣/etc/hosts로 확인해 보세요.
총결산
Docker1.다음은 3에 대응하는 boot2 docker와 fig의 기능을 소개한다.
fig를 사용하면 컨테이너 관리를 간단하게 할 수 있다
가장 중요한 것은 컨테이너 ID가 아닌 서비스 이름이어서 매우 편리하다.
그리고 현지 환경의 구축으로 지금까지 고민했던 일들이 거의 사라졌다
일종의 생활 방식 같다.
아직'만졌다'정도니까 자기 환경에서도 많이 사용해 주세요.
나는 개발 절차에 편입하고 싶다!!
경품 중의 하나
맥을 다시 시작한 Docker 시작 시간의 피부감
로컬 파일과 컨테이너 내 파일이 동기화되는 경우
포획을 기다립니다.
fig의 부팅은 한순간에 끝납니다. 용기가 가장 높습니다♪
덧붙이다
fig.yml 한 장만 쓰기(!)구문을 사용합니다.
여기는fig config입니다.
Mac에서 서버로 API를 실행하고 싶어서요.
consulserver만 다른 포트 (+10000) 에서 전송됩니다.
fig.ymlconsulserver:
image: progrium/consul
command: -server -bootstrap
ports:
- "18300:8300"
- "18400:8400"
- "18500:8500"
consulclientA:
image: progrium/consul
command: -join consulserver
links:
- consulserver
consulclientB:
image: progrium/consul
command: -join consulserver
links:
- consulserver
consulclientC:
image: progrium/consul
command: -join consulserver
links:
- consulserver
시위가 이쪽에서 행진하다.
좋지 않다.
Reference
이 문제에 관하여(Docker1.3판 boot2 docker+fig 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/toritori0318/items/190fd2dad2bf3ce38b88
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
boot2 docker를 1.3으로 증가
설치가 완료된 경우 버전 + VM을 업데이트하려면 다음 절차를 따르십시오.
boot2docker upgrade
boot2docker delete
boot2docker download
boot2docker init
# 確認
boot2docker version
튜토리얼 실행
보충과 동시에 공식 사이트와 대체적으로 같은 절차로 진행해 봅시다.
디렉터리를 적당히 발굴하고 다음 파일을 놓으세요.
(기타 Rails/Django/Wordpress의 샘플)
응용 프로그램 만들기
이 스크립트는 액세스 시에만 Redis에 카운트되고 표시됩니다.
app.py
# -*- coding: utf-8 -*-
from flask import Flask
from redis import Redis
import os
app = Flask(__name__)
# ホスト=redisというのは、figが設定している/etc/hostsを参照しています。後ほど補足
# もちろん、Docker標準の環境変数を利用してもOKです
redis = Redis(host='redis', port=6379)
@app.route('/')
def hello():
redis.incr('hits')
return 'Hello World! I have been seen %s times.' % redis.get('hits')
if __name__ == "__main__":
# これはflaskの設定Tipsですが、他のコンテナから見えるようにhost="0.0.0.0"を設定する必要があります
app.run(host="0.0.0.0", debug=True)
requirements.txtflask
redis
Docker file 만들기
ptyhon:2.7 이미지 다운로드
Mac의 현재 디렉토리 아래를 컨테이너의/code에 추가
pip에 필요한python 모듈이 설치되었습니다.
DockerfileFROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
파일 만들기
fig.ymlweb: # サービス名です。この名前でコンテナにアクセスできます
build: . # ./Dockerfileを用いビルドする
command: python app.py # ビルド後のコンテナで実行するコマンド
ports:
- "5000:5000" # ポートフォワード設定。フォーマットは <ホスト側ポート>:<コンテナ側ポート>
volumes:
- .:/code # ボリューム設定。ローカル「.」を コンテナ「/code」に同期
links:
- redis:redis # リンク設定。フォーマットは <サービス名>:<エイリアス名>
redis:
image: redis # DockerRegistry上のredisイメージを用いコンテナ生成
실행하다
먼저 boot2 docker를 시작합니다.
이어서 fig로 컨테이너 가동
응용 프로그램이 실행되는지 확인합니다.
boot2docker
boot2 docker:VM 시작
호스트 boot2 docker를 시작합니다.이것은 이전과 같다.# VM起動
boot2docker up
# Docker関連の環境変数設定
# コンソールに表示された環境変数をコピペでも良いですが、
# 以下のコマンドでも良いらしい
$(boot2docker shellinit)
fig
fig 명령을 실행합니다.
대부분의 명령은 '서비스 이름' 을 매개 변수로 사용할 수 있습니다.
서비스 이름을 생략할 때 "모든 서비스"를 대상으로 명령을 실행합니다.
컨테이너 시작
fig의 현재 디렉터리에서fig 명령을 실행합니다.
(데몬 시작 시 -d 옵션 추가)
(이미지가 이미 만들어진 경우 fig start 는 OK)fig up
진정한 초회에만 이미지 다운로드 등의 상황이 발생할 수 있다
두 번째 이후에는 한순간에 컨테이너를 가동할 것이다.
샘플 응용 프로그램에 접근해 보십시오
호스트 VM의 ip를 확인한 후 curl로 액세스하십시오.
# IP確認。/etc/hostsなどに登録しておくと良いですね
boot2docker ip
# アプリにアクセス
curl 192.168.59.103:5000
(Hello World! I have been seen blah 1 times.)
컨테이너 확인(서비스)
ps 명령을 통해 확인할 수 있습니다.서비스명 등이 있어 보기 쉽다.
-q 옵션을 지정하면 컨테이너 ID가 표시됩니다.fig ps
정지하다
용기를 정지하다.fig stop
로그 표시
fig에서 용기 내의 로그를 가져올 수도 있습니다.
다음은 웹 서비스를 얻는log입니다.
# フォーマット
fig logs サービス名
# redisサービスのログ表示
fig logs redis
그리고
몇 가지 지령이 있으니 fig 지령으로 확인해 주세요.
fig에 대한 추가 정보
서비스 이름이 /etc/hosts에 반영됨
그렇지만 서비스 이름을 설정하면/etc/hosts에 반영됩니다.
살짝 확인했는데 다음 느낌으로 반영하는 것 같아요.web:
links:
- redis:redis6379
redis:
...
web_etc_hosts...
x.x.x.x figtest_web_1
x.x.x.x redis6379
x.x.x.x redis_1
x.x.x.x web
x.x.x.x web_1
x.x.x.x figtest_redis_1
...
redis_etc_hosts...
x.x.x.x figtest_redis_1
x.x.x.x redis
x.x.x.x redis_1
...
"자신의 호스트 정보"+ "링크스가 설정한 호스트 정보"를 설정한 것 같습니다.
캣/etc/hosts로 확인해 보세요.
총결산
Docker1.다음은 3에 대응하는 boot2 docker와 fig의 기능을 소개한다.
fig를 사용하면 컨테이너 관리를 간단하게 할 수 있다
가장 중요한 것은 컨테이너 ID가 아닌 서비스 이름이어서 매우 편리하다.
그리고 현지 환경의 구축으로 지금까지 고민했던 일들이 거의 사라졌다
일종의 생활 방식 같다.
아직'만졌다'정도니까 자기 환경에서도 많이 사용해 주세요.
나는 개발 절차에 편입하고 싶다!!
경품 중의 하나
맥을 다시 시작한 Docker 시작 시간의 피부감
로컬 파일과 컨테이너 내 파일이 동기화되는 경우
포획을 기다립니다.
fig의 부팅은 한순간에 끝납니다. 용기가 가장 높습니다♪
덧붙이다
fig.yml 한 장만 쓰기(!)구문을 사용합니다.
여기는fig config입니다.
Mac에서 서버로 API를 실행하고 싶어서요.
consulserver만 다른 포트 (+10000) 에서 전송됩니다.
fig.ymlconsulserver:
image: progrium/consul
command: -server -bootstrap
ports:
- "18300:8300"
- "18400:8400"
- "18500:8500"
consulclientA:
image: progrium/consul
command: -join consulserver
links:
- consulserver
consulclientB:
image: progrium/consul
command: -join consulserver
links:
- consulserver
consulclientC:
image: progrium/consul
command: -join consulserver
links:
- consulserver
시위가 이쪽에서 행진하다.
좋지 않다.
Reference
이 문제에 관하여(Docker1.3판 boot2 docker+fig 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/toritori0318/items/190fd2dad2bf3ce38b88
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# -*- coding: utf-8 -*-
from flask import Flask
from redis import Redis
import os
app = Flask(__name__)
# ホスト=redisというのは、figが設定している/etc/hostsを参照しています。後ほど補足
# もちろん、Docker標準の環境変数を利用してもOKです
redis = Redis(host='redis', port=6379)
@app.route('/')
def hello():
redis.incr('hits')
return 'Hello World! I have been seen %s times.' % redis.get('hits')
if __name__ == "__main__":
# これはflaskの設定Tipsですが、他のコンテナから見えるようにhost="0.0.0.0"を設定する必要があります
app.run(host="0.0.0.0", debug=True)
flask
redis
FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
web: # サービス名です。この名前でコンテナにアクセスできます
build: . # ./Dockerfileを用いビルドする
command: python app.py # ビルド後のコンテナで実行するコマンド
ports:
- "5000:5000" # ポートフォワード設定。フォーマットは <ホスト側ポート>:<コンテナ側ポート>
volumes:
- .:/code # ボリューム設定。ローカル「.」を コンテナ「/code」に同期
links:
- redis:redis # リンク設定。フォーマットは <サービス名>:<エイリアス名>
redis:
image: redis # DockerRegistry上のredisイメージを用いコンテナ生成
먼저 boot2 docker를 시작합니다.
이어서 fig로 컨테이너 가동
응용 프로그램이 실행되는지 확인합니다.
boot2docker
boot2 docker:VM 시작
호스트 boot2 docker를 시작합니다.이것은 이전과 같다.
# VM起動
boot2docker up
# Docker関連の環境変数設定
# コンソールに表示された環境変数をコピペでも良いですが、
# 以下のコマンドでも良いらしい
$(boot2docker shellinit)
fig
fig 명령을 실행합니다.
대부분의 명령은 '서비스 이름' 을 매개 변수로 사용할 수 있습니다.
서비스 이름을 생략할 때 "모든 서비스"를 대상으로 명령을 실행합니다.
컨테이너 시작
fig의 현재 디렉터리에서fig 명령을 실행합니다.
(데몬 시작 시 -d 옵션 추가)
(이미지가 이미 만들어진 경우 fig start 는 OK)
fig up
진정한 초회에만 이미지 다운로드 등의 상황이 발생할 수 있다두 번째 이후에는 한순간에 컨테이너를 가동할 것이다.
샘플 응용 프로그램에 접근해 보십시오
호스트 VM의 ip를 확인한 후 curl로 액세스하십시오.
# IP確認。/etc/hostsなどに登録しておくと良いですね
boot2docker ip
# アプリにアクセス
curl 192.168.59.103:5000
(Hello World! I have been seen blah 1 times.)
컨테이너 확인(서비스)
ps 명령을 통해 확인할 수 있습니다.서비스명 등이 있어 보기 쉽다.
-q 옵션을 지정하면 컨테이너 ID가 표시됩니다.
fig ps
정지하다
용기를 정지하다.
fig stop
로그 표시
fig에서 용기 내의 로그를 가져올 수도 있습니다.
다음은 웹 서비스를 얻는log입니다.
# フォーマット
fig logs サービス名
# redisサービスのログ表示
fig logs redis
그리고
몇 가지 지령이 있으니 fig 지령으로 확인해 주세요.
fig에 대한 추가 정보
서비스 이름이 /etc/hosts에 반영됨
그렇지만 서비스 이름을 설정하면/etc/hosts에 반영됩니다.
살짝 확인했는데 다음 느낌으로 반영하는 것 같아요.
web:
links:
- redis:redis6379
redis:
...
web_etc_hosts...
x.x.x.x figtest_web_1
x.x.x.x redis6379
x.x.x.x redis_1
x.x.x.x web
x.x.x.x web_1
x.x.x.x figtest_redis_1
...
redis_etc_hosts...
x.x.x.x figtest_redis_1
x.x.x.x redis
x.x.x.x redis_1
...
"자신의 호스트 정보"+ "링크스가 설정한 호스트 정보"를 설정한 것 같습니다.캣/etc/hosts로 확인해 보세요.
총결산
Docker1.다음은 3에 대응하는 boot2 docker와 fig의 기능을 소개한다.
fig를 사용하면 컨테이너 관리를 간단하게 할 수 있다
가장 중요한 것은 컨테이너 ID가 아닌 서비스 이름이어서 매우 편리하다.
그리고 현지 환경의 구축으로 지금까지 고민했던 일들이 거의 사라졌다
일종의 생활 방식 같다.
아직'만졌다'정도니까 자기 환경에서도 많이 사용해 주세요.
나는 개발 절차에 편입하고 싶다!!
경품 중의 하나
맥을 다시 시작한 Docker 시작 시간의 피부감
로컬 파일과 컨테이너 내 파일이 동기화되는 경우
포획을 기다립니다.
fig의 부팅은 한순간에 끝납니다. 용기가 가장 높습니다♪
덧붙이다
fig.yml 한 장만 쓰기(!)구문을 사용합니다.
여기는fig config입니다.
Mac에서 서버로 API를 실행하고 싶어서요.
consulserver만 다른 포트 (+10000) 에서 전송됩니다.
fig.ymlconsulserver:
image: progrium/consul
command: -server -bootstrap
ports:
- "18300:8300"
- "18400:8400"
- "18500:8500"
consulclientA:
image: progrium/consul
command: -join consulserver
links:
- consulserver
consulclientB:
image: progrium/consul
command: -join consulserver
links:
- consulserver
consulclientC:
image: progrium/consul
command: -join consulserver
links:
- consulserver
시위가 이쪽에서 행진하다.
좋지 않다.
Reference
이 문제에 관하여(Docker1.3판 boot2 docker+fig 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/toritori0318/items/190fd2dad2bf3ce38b88
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
consulserver:
image: progrium/consul
command: -server -bootstrap
ports:
- "18300:8300"
- "18400:8400"
- "18500:8500"
consulclientA:
image: progrium/consul
command: -join consulserver
links:
- consulserver
consulclientB:
image: progrium/consul
command: -join consulserver
links:
- consulserver
consulclientC:
image: progrium/consul
command: -join consulserver
links:
- consulserver
Reference
이 문제에 관하여(Docker1.3판 boot2 docker+fig 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/toritori0318/items/190fd2dad2bf3ce38b88텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)