1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Dockerのコンテナにボリュームを見せる

Posted at

Dockerでは-vオプションを利用することでコンテナ内の任意の場所にホストOSの任意のディレクトリを見せることができる。

ホストOSのボリュームの見せ方
sudo docker run -d -v ホストOSディレクトリ:コンテナでのマウント先ディレクトリ --name コンテナ名 -i -t イメージ名 /bin/bash

(前準備)楽に操作するために

dockerグループに操作したいユーザを所属させる。
毎回sudoうつのダルいので。

dockerグループへの追加
sudo usermod ユーザ名 -G 既存グループ名・ID,docker

コンテナにホストOSのディレクトリを見せる

ホストOSのボリュームをコンテナに見せる
docker run -d -p 80:80 -v /home/ubuntu/nodecode:/opt/nodecode --name nodejs002 -i -t node /bin/bash

docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                         PORTS                NAMES
a21c33a1756c        node                "/bin/bash"         5 seconds ago       Up 4 seconds                   0.0.0.0:80->80/tcp   nodejs002

ホストOSの/home/ubuntu/nodecodeをコンテナ内の/opt/nodecodeディレクトリにマウントしている。

今回はnodejsのコンテナを利用している。

/home/ubuntu/nodecodeディレクトリに以下のファイルを作成する。

test.js
var http = require('http');

var server = http.createServer();
server.on('request', doRequest);

server.listen(80);
console.log('Server running!');

function doRequest(req, res) {
	res.writeHead(200, {'Content-Type': 'text/plain'});
	res.write('Hello World\n');
	res.end();
}

コンテナ内からの確認

docker runの記述内容から/opt/nodecodeの配下に
test.jsが作成されているはずなので、これを確認する。

コンテナ内でのtest.jsファイルの確認
docker exec -it nodejs002 /bin/bash
cd /opt/nodecode
ls -la
total 8
drwxrwxr-x 2 1000 1000 4096 Jul 15 15:39 .
drwxr-xr-x 3 root root   22 Jul 15 15:36 ..
-rw-rw-r-- 1 1000 1000  276 Jul 15 15:39 test.js

test.jsが存在することが確認できた。
先ほどのコンテナ内でnodejsを起動させ、test.jsの内容を実行する。

test.jsのコンテナ内での起動
node test.js
Server running!

起動させた後に、Dockerコンテナを実行している
VMのTCP80番ポートにアクセスする。

Kobito.Oz7tMe.png

期待した通りの文字列(Hello World!)が帰ってきた。

まとめ

-vオプションを用いることでホストOS上のファイルをコンテナに見せることができた。
また、それを使ってアプリケーションを起動させることもできた。

1
1
0

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?