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

前回まで

4日前なので内容を忘れてしまった。まあここから取り戻そう。

Persisting container data

コンテナで作られたファイルはコンテナが消えると同時に消える。
でもデータベースなどはコンテナが消えても保持していたいよね?→persistさせる。volumeに

volumeの作り方とマウント(=アタッチ)のさせ方
docker volume create log-data
docker container run -d -p 80:80 -v log-data:/logs docker/welcome-to-docker
こうすることでdocker上の/logsファイルに書き込まれたデータはvolume: log-dataに保存される

try it out
Docker Desktopを起動。問題発生
https://qiita.com/matarillo/items/98d7452967987fe5d633
を参考に仮想マシンの機能を有効化→再起動→無事起動

volumeをマウントしたdockerの作成→削除
同一volumeをマウントした新たなdockerの作成→中身確認
コンテナ作成

docker run --name=db -e POSTGRES_PASSWORD=secret 
-d -v postgres_data:/var/lib/postgresql/data postgres

psotgresコマンドの実行

docker exec -ti db psql -U postgres
CREATE TABLE tasks (
    id SERIAL PRIMARY KEY,
    description VARCHAR(100)
);
INSERT INTO tasks (description) VALUES ('Finish work'), ('Have fun');
SELECT * FROM tasks;
\q

コンテナの停止および削除

docker stop db
docker rm db

新たなコンテナの作成及びvolumeの中身確認

docker run --name=new-db -d -v postgres_data:/var/lib/postgresql/data postgres 
docker exec -ti new-db psql -U postgres -c "SELECT * FROM tasks"

新しいコンテナでも前のコンテナで書き込んだのと同じテーブル内容が確認できた

後処理

docker rm -f new-db
docker volume rm postgres_data

volumeをマウントしているコンテナがあると削除できないため、最初に削除する

Sharing local files with containers

-vと-mのどっちでもlocalfileをcontainerとshareすることはできる。
オプションの後がパスかvolumeかで判別するのかな。
-vのほうはマウント先がなかったら勝手に作ってくれるなど新設設計だけど、-mのほうが詳細な設定ができるから
なるだけ-m使えとのこと。
また、read-onlyやread-writeなどfile permissionsも設定できる

try it out
コンテナを作る

docker run -d -p 8080:80 --name my_site httpd:2.4

動作確認

curl localhost:8080

中を確認したらコンテナを消す

次に適当にディレクトリを作って、中にindex.htmlを入れる
作ったディレクトリにcdして以下のコマンドを実行

docker run -d --name my_site -p 8080:80 -v .:/usr/local/apache2/htdocs/ httpd:2.4

localhost:8080にアクセスすると、自分で定義したindex.htmlの内容にそったpageが表示される

次にindex.htmlをguiから消す。
作ったコンテナをクリックしてfilesをたどると、index.htmlがあるので、クリックして右上のごみ箱ボタンを押す→コンテナごと消えた。右クリックしてからdeleteでファイルのみ消える。
この状態でlocalhost:8080にアクセスすると Index of/という簡素な内容のHPにすげ変わっている。
また、ホストマシーンのindex.htmlも消えている。
hostとcontainerでファイルをshareしていることが確認できた。
作ったコンテナは不要なので消す

今日はここまで、明日からは何か創造的というかdocumentの後追いでないことをやりたい

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