LoginSignup
0
0

More than 3 years have passed since last update.

HostとContainerの繋がり

Posted at

【HostとContainerの繋がり】

かめさん いつもありがとうございます。
米国AI開発者がゼロから教えるDocker講座

・ファイルシステムの共有
・ファイルへのアクセス権限
・ポートを繋げる
・コンピュータリソースの上限

 → $docker run コマンド時のオプションで設定

ホストのファイルシステムをコンテナにマウント

-v < host/path >:< container/path >オプション

HostのファイルシステムにあるcodeをContainerにあるかのように扱える。
これによって、Containerのファイルが大きくならない。

$ cd ~/Documents
$ mkdir mounted_folder
$ touch mounted_folder/file_at_host
$ docker build .
$ docker run -it -v ~/Documents/mounted_folder:/new_dir < image > bash
$ ls /new_dir

ユーザIDとグループIDを指定してコンテナをrunする

-u < user id >:< group id >オプション

Containerを起動する時にrootじゃなくて、指定したユーザIDとグループIDでrunをするようにする。
セキュリティを向上させる。

$ cd ~/Documents
$ docker build .
$ docker run -it -u 501:20 -v ~/Documents/mounted_folder:/created_in_run < image > bash
$ touch /created_in_Docker/sample_file
$ touch /created_in_run/sample_file

ホストのポートをコンテナのポートに繋げる

-p < host_port >:< container_port >オプション

コンテナをWebサービスとして立てるといった使い方はよくさせる。
HostのポートからContainerのポートにアクセス(publish)するために繋げる必要がある。

$ docker run -it -p 8888:8888 --rm jupyter/datascience-notebook bash
$ jupyter notebook

コンテナがアクセスできる上限のCPU、メモリを設定

コンテナがアクセスできる上限のCPUを設定
 → --cpus < # ofCPUs >

コンテナがアクセスできる上限のメモリを設定
 → --memory < byte >

$ docker run -it --rm --cpus 4 --memory 2g ubuntu bash
$ docker ps
$ docker inspect < container >
 → コンテナの詳細を表示する。
$ docker inspect < container > | grep -i < something >

補足

1 K byte = 1024 byte
1 M byte = 1024 * 1024 byte
1 G byte = 1024 * 1024 * 1024 byte

※1024 = 2^10

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