LoginSignup
7

More than 5 years have passed since last update.

dockerコンテナでnfsサーバーの実験をする

Last updated at Posted at 2015-12-10

dockerコンテナでnfsサーバーを起動し、ホスト側からマウントしてみる。

dockerインストール

# yum install docker
# systemctl enable docker
# systemctl start docker

コンテナを作って作業

// systemdを使うため(nfsデーモン起動用)
$ docker run --privileged=true -d --name nfstest -p 2049:2049 -i -t centos:centos7 /sbin/init
$ docker exec -i -t nfstest /bin/bash

// xfsのファイルシステムを作って公開
# cd /home
# fallocate -l 1GB xfs.dat
# ls -l
-rw-r--r-- 1 root root 1000000000 Dec 10 10:08 xfs.dat
# yum install xfsprogs
# ll /dev/loop*
brw-rw---- 1 root disk  7,   0 Dec 10 12:42 /dev/loop0
brw-rw---- 1 root disk  7,   1 Dec 10 12:42 /dev/loop1
crw------- 1 root root 10, 237 Dec 10 12:42 /dev/loop-control
# mknod /dev/loop2 b 7 2
# losetup /dev/loop2 xfs.dat
# mkfs -t xfs /dev/loop2
# mkdir /home/xfs
# mount -o inode64 -t xfs /dev/loop2 /home/xfs

// nfs公開(ホスト制限無し *の後にスペース無しにしないとダメ)
# yum install nfs-utils
# vi /etc/exports.d/xfs.exports
/home/xfs *(rw)
# systemctl start rpcbind
# systemctl start nfs

dockerホスト側

# ip addr
5: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 172.17.42.1/16 scope global docker0
# mount -t nfs 172.17.42.1:/home/xfs /mnt
# df -T
172.17.42.1:/home/xfs nfs4          973184    32896   940288    4% /mnt

参考

CentOS 7のDockerコンテナ内でsystemdを使ってサービスを起動する - Qiita
http://qiita.com/yunano/items/9637ee21a71eba197345

Dockerで不要になったコンテナやイメージを削除する - @znz blog
http://blog.n-z.jp/blog/2013-12-24-docker-rm.html

$ docker rm `docker ps -a -q`
$ docker rmi $(docker images | awk '/^<none>/ { print $3 }')

[docker]コンテナ内でsystemdを稼働させながら、ログインもしたい・・ - 『システムノヲニワソト』
http://blog.goo.ne.jp/system-oni800/e/b84f8824f09cd665e0b880709609ece0

コンテナに入りたい?それ docker exec でできるよ - Qiita
http://qiita.com/yosisa/items/a5670e4da3ff22e9411a
docker - Failed to get D-Bus connection: No connection to service manager.の対処 - Qiita
http://qiita.com/tukiyo3/items/b24e4dc62de59d4a7570

つまりはこうする

// デーモンモードでinitを起動
$ docker run --privileged=true -d --name test -p 2049:2049 -i -t centos:centos7 /sbin/init
// execコマンドでログインする
$ docker exec -i -t test /bin/bash
[root@4130ba7fe6e2 /]# ps awx
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:00 /sbin/init
   62 ?        Ss     0:00 /usr/lib/systemd/systemd-journald
   84 ?        Ss     0:00 /bin/bash
  103 ?        R+     0:00 ps awx

[CentOS] NFSサーバを起動しようとすると「writing fd to kernel failed: errno 111 (Connection refused)」というエラーになる - Life with IT
http://l-w-i.net/t/centos/nfs_100.txt

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7