DockerでShareフォルダを使う

Dockerを使う際、ホストとゲストで共通フォルダ作成してデータのやり取りを行いたい。

Shareフォルダはdocker run時に指定するようだが、それだと今まで様々なモジュールをインストールして設定してきたものが無駄になる。
解決策としては、以下の通り。
1. 現在のコンテナを一旦イメージ化してImageIDを取得する。
2. そのImageIDを使用して、Shareフォルダを指定しdocker runする。
これだと、今までの設定を無駄にせず、Shareフォルダを作成できる。

事前準備 Dockerのsettingsでホスト側Shareフォルダを設定しておく。











1. 現在のコンテナを一旦イメージ化してImageIDを取得する
$ docker commit --author="Hoge-san" --message="ssh, sqlcmd modules in ubuntu18.04LTS." ssh_ubuntu sqlcmd_srv
※注意:ここでタグを指定すると、なぜかdocker run時にエラーが発生する
2. そのImageIDを使用して、Shareフォルダを指定しdocker runする
$ docker run -it -d -v $PWD/share:/tmp -p 10000:22 --name sqlcmd_ubuntu sqlcmd_srv
※$PWD/share→ホスト側:Windowsでディレクトリを作成しておく。
 /tmp→ゲスト側:一番楽なのでここにした。
Shareフォルダを確認する
$ ssh ubuntu@localhost -p 10000
ubuntu@ebb915f7517e:~$ ls -l /tmp
total 3096
-rwxr-xr-x 1 root root   34941 Jun 12 06:57 docker_settings.png
※WindowsのShareフォルダに入れたファイルがUbuntuの/tmpフォルダで見れてます。

コメント

このブログの人気の投稿

ソリューション構成ごとにconfigファイルを作成する

C++の古いプロジェクトのビルドでerror MIDL2311 : statements outside library block are illegal in mktyplib compatability mode

web.config debug/releaseの内容を変換構文を使って切り替える