Memo

メモ > サーバ > 各論: Docker > イメージを作成

■イメージを作成
■イメージを作成(commitコマンド) ※実際にコンテナに対して行った操作内容をもとに、イメージを作成する
$ docker container run --name php -v $PWD/docker/test/code:/var/www/html -p 80:80 -d php:8.1-apache $ docker container exec -it php bash … phpコンテナのターミナルに接続 # touch /root/test1.txt … テストファイルを作成しておく # touch /root/test2.txt # exit $ docker container diff php … コンテナ「php」内の差分を表示(テストファイルの存在を確認する) $ docker container commit php php:create_file … コンテナ「php」のイメージを「php:create_file」という名前で作成 $ docker container run --name php -v $PWD/docker/test/code:/var/www/html -p 80:80 -d php:create_file … 作成したイメージから起動 $ docker container exec -it php bash … phpコンテナのターミナルに接続 # ls /root … テストファイルを確認する $ docker container rm -f $(docker container ls -a -q) … 作成済みのコンテナをいったん終了
■イメージを作成(buildコマンド) ※コンテナへの操作内容をDockerfile(テキストファイル)に記載し、それをもとにイメージを作成する ※Dockerfileさえ渡せば、他の人も同じ環境を再現できる ※操作内容が明確になり、gitで変更履歴を管理することもできるため、原則としてこちらの方法を推奨
$ docker image ls … 上で作成したイメージのIDを確認 $ docker image rm f51b32dd3fc4 … 削除しておく
docker\php_create_file\Dockerfile … Dockerfileを作成
FROM php:8.1-apache RUN touch /root/test1.txt RUN touch /root/test2.txt
$ docker image build -t php:create_file docker/php_create_file … Dockerfileをもとに、新しいイメージをビルド $ docker image ls … 作成されたイメージを確認 $ docker container run --name php -v $PWD/docker/test/code:/var/www/html -p 80:80 -d php:create_file … 作成したイメージから起動 $ docker container exec -it php bash … phpコンテナのターミナルに接続 # ls /root … テストファイルを確認する $ docker container rm -f $(docker container ls -a -q) … 作成済みのコンテナをいったん終了

Advertisement