docker-composeはやれることが多いので少しずつ実践していきたいと思います!
やること
docker-composeのvolumesを使ってホスト上のファイルやディレクトリをマウントする。
ホストのディレクトリ構成
./docker-sample
├ docker-compose.yaml
└ volume_sample
└ test.txt
実践!
1.ホスト上のディレクトリをマウント
1-1.docker-compose.yamlファイル作成
# vi docker-compose.yaml version: '3' services: web1: image: tomcat ports: - "8080:8080" volumes: - ./volume_sample:/volume
1-2.コンテナ起動
# docker compose up -d [+] Building 0.0s (0/0) [+] Running 1/0 ✔ Network docker-sample_default Created 0.1s ✔ Container docker-sample-web1-1 Started 0.3s # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 73d092c6e7f8 tomcat "catalina.sh run" 4 seconds ago Up 3 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp docker-sample-web1-1
1-3.動作確認
(web1_container)# ls /volume test.txt
2.ホスト上に新規ディレクトリを作成してマウント
2-1.docker-compose.yamlファイル作成
# vi docker-compose.yaml version: '3' services: web1: image: tomcat ports: - "8080:8080" volumes: - volume:/volume volumes: volume:
2-2.コンテナ起動
# docker compose up -d [+] Building 0.0s (0/0) [+] Running 1/0 0.0s ✔ Container docker-sample-web1-1 Running # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5e32e8f2862b tomcat "catalina.sh run" 8 seconds ago Up 6 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp docker-sample-web1-1
2-3.動作確認
# docker exec -it 5e32e8f2862b /bin/bash (container)# ls / bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var volume (container)# touch /volume/container_create_file.txt (container)# ls /volume container_create_file.txt (container)# exit # find / -name container_create_file.txt /var/lib/docker/volumes/docker-sample_volume/_data/container_create_file.txt
※ホストの/var/lib/docker/volumes内にディレクトリが切られ、ファイルが保存された模様
感想
これでconfファイルなどもマウントできますね!(*´ω`*)