DRYな備忘録

Don't Repeat Yourself.

Dockerコンテナ同士のNFSのサーバ・クライアント疎通サンプル

サーバの起動

イメージはこれ → docker-nfs/server at master · otiai10/docker-nfs · GitHub

% docker-machine create \
  --driver amazonec2 \
  --amazonec2-region ap-northeast-1 \
  --amazonec2-security-group otiai10-test \
  otiai10-server

% eval $(docker-machine env otiai10-server)

% docker run \
-it --rm \
--net host \
--privileged \
otiai10/nfs-server

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 00-config: executing...
[cont-init.d] 00-config: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
rpc.mountd: Version 1.3.0 starting

あるいはこれ → daapミドルウェアを使ったGoのソースコードからのNFSサーバの起動 · GitHub

クライアント×2の起動と疎通確認

% docker-machine create \
  --driver amazonec2 \
  --amazonec2-region ap-northeast-1 \
  --amazonec2-security-group otiai10-test \
  otiai10-client-test

% eval $(docker-machine env otiai10-client-test)
% docker pull otiai10/nfs-client

イメージはこれ → docker-nfs/client at master · otiai10/docker-nfs · GitHub

% docker run -it --rm \
--name client_1 \
--privileged \
-e SOURCE=172.31.16.219:/ \
otiai10/nfs-client

root@e2b6f924bda5:/# echo "Hello! Hello! This is ${HOSTNAME}!" >> /root/mountpoint/greeting.txt
root@e2b6f924bda5:/#
% docker run -it --rm \
--name client_2 \
--privileged \
-e SOURCE=172.31.16.219:/ \
otiai10/nfs-client

root@91f46eeb21d3:/# ls -la /root/mountpoint/
total 12
drwxrwxrwx 2 root   root    4096 Mar 22 07:55 .
drwx------ 3 root   root    4096 Mar 14 11:08 ..
-rw-r--r-- 1 nobody nogroup   36 Mar 22 07:55 greeting.txt
root@91f46eeb21d3:/#
root@91f46eeb21d3:/# cat /root/mountpoint/greeting.txt
Hello! Hello! This is e2b6f924bda5!
root@91f46eeb21d3:/# 
root@91f46eeb21d3:/# echo "How's it going? I'm ${HOSTNAME}. Nice to meet you!" >> /root/mountpoint/greeting.txt
root@91f46eeb21d3:/#
root@e2b6f924bda5:/# cat /root/mountpoint/greeting.txt
Hello! Hello! This is e2b6f924bda5!
How's it going? I'm 91f46eeb21d3. Nice to meet you!
root@e2b6f924bda5:/#

いけてる。雑に構成。

f:id:otiai10:20180322172815p:plain

各イメージの挙動は、以下のDockerfileの通り。

github.com

DRYな備忘録として

Amazon Web Services実践入門 (WEB+DB PRESS plus)

Amazon Web Services実践入門 (WEB+DB PRESS plus)

プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化

プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化

インフラエンジニアの教科書2 スキルアップに効く技術と知識

インフラエンジニアの教科書2 スキルアップに効く技術と知識