このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
docker:20:build [2020/12/23 11:10] y2sunlight [Dockerfile] |
docker:20:build [2020/12/26 21:47] y2sunlight [Dockerfile] |
||
---|---|---|---|
行 11: | 行 11: | ||
* [[docker: | * [[docker: | ||
* Docker コンテナイメージの作成(Bulid) | * Docker コンテナイメージの作成(Bulid) | ||
- | * [[docker: | ||
リンク | リンク | ||
行 157: | 行 156: | ||
==== htmlとphpファイルの設置 ==== | ==== htmlとphpファイルの設置 ==== | ||
- | 以下のように、hello.tml と info.php を新しく作成します: | + | 以下のように、hello.html と info.php を新しく作成します: |
- | <code html hello.tml> | + | <code html hello.html> |
< | < | ||
< | < | ||
行 445: | 行 444: | ||
<code bash> | <code bash> | ||
- | $ d$ docker run --name myphp74 -d -p 8080:80 myphp74: | + | $ docker run --name myphp74 -d -p 8080:80 myphp74: |
23d84d5ce0837cdbf171695c417fe387793aadbdf497b341d24d398ef9ae809a | 23d84d5ce0837cdbf171695c417fe387793aadbdf497b341d24d398ef9ae809a | ||
</ | </ | ||
行 459: | 行 458: | ||
これまでの項では、手動でDockerコンテナを作成しイメージとして保存しました。これら一連のDockerイメージの作成過程を自動化してくれるのが「Dockerfile」です。Dockerfile とは、Docker イメージを作成する時のコマンドを1つのファイルにまとめたもので、Docker コンテナの構成情報を記述するためのファイルです。 | これまでの項では、手動でDockerコンテナを作成しイメージとして保存しました。これら一連のDockerイメージの作成過程を自動化してくれるのが「Dockerfile」です。Dockerfile とは、Docker イメージを作成する時のコマンドを1つのファイルにまとめたもので、Docker コンテナの構成情報を記述するためのファイルです。 | ||
- | これまでの項で作成してものと全く同じDockerイメージを本項では Dockerfile を使って作成します。 | + | これまでの項で作成してものと全く同じDockerイメージを本項では Dockerfile を使って作成します。以下の作業は全てホストで行います。 |
\\ | \\ | ||
行 490: | 行 489: | ||
FROM php: | FROM php: | ||
# | # | ||
- | # Apache/PHP Settings | + | # Apache/ |
# | # | ||
COPY ./ | COPY ./ | ||
行 505: | 行 504: | ||
# gd | # gd | ||
# | # | ||
- | RUN apt update | + | RUN apt-get update |
- | RUN apt apt install -y zlib1g-dev libpng-dev libjpeg62-turbo-dev \ | + | RUN apt-get install -y zlib1g-dev libpng-dev libjpeg62-turbo-dev \ |
&& docker-php-ext-configure gd --with-jpeg \ | && docker-php-ext-configure gd --with-jpeg \ | ||
&& docker-php-ext-install -j$(nproc) gd | && docker-php-ext-install -j$(nproc) gd | ||
行 512: | 行 511: | ||
# memcached | # memcached | ||
# | # | ||
- | RUN apt install -y libmemcached-dev \ | + | RUN apt-get install -y libmemcached-dev \ |
&& pecl install memcached \ | && pecl install memcached \ | ||
&& docker-php-ext-enable memcached | && docker-php-ext-enable memcached | ||
- | |||
- | && apt-get purge --auto-remove -y g++ | ||
- | COPY apache2.conf / | ||
- | # COPY php.ini-production / | ||
- | COPY php.ini-development / | ||
- | RUN usermod -u 1000 www-data && groupmod -g 1000 www-data | ||
</ | </ | ||
- | * '' | + | * '' |
- | * '' | + | * '' |
- | * '' | + | * '' |
+ | |||
+ | > Dockerfileで '' | ||
+ | >> | ||
+ | |||
+ | > また、'' | ||
+ | >> | ||
Dockerfile の詳細については、以下を参照して下さい: | Dockerfile の詳細については、以下を参照して下さい: | ||
行 534: | 行 533: | ||
==== Dockerイメージの作成 | ==== Dockerイメージの作成 | ||
+ | |||
+ | Dockerfileの準備が出来たら、[[https:// | ||
<code bash> | <code bash> | ||
+ | $ docker build -t myphp74: | ||
</ | </ | ||
+ | |||
+ | * '' | ||
+ | * コマンドの最後の引数( '' | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | <code bash> | ||
+ | $ docker images | ||
+ | REPOSITORY | ||
+ | REPOSITORY | ||
+ | myphp74 | ||
+ | myphp74 | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | <code bash> | ||
+ | $ docker history myphp74: | ||
+ | IMAGE CREATED | ||
+ | d849c91871fd | ||
+ | 30fc1a25dfb9 | ||
+ | 17d39386f699 | ||
+ | 778c23eca0cd | ||
+ | 5645b898b5af | ||
+ | 9fc74c528658 | ||
+ | e0878c88c727 | ||
+ | 89628e4477f9 | ||
+ | fd505f1f4cd8 | ||
+ | < | ||
+ | < | ||
+ | ... | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | Dockerfileに記述した降順にレイヤー作成されているのが分かります。'' | ||
\\ | \\ | ||
+ | |||
+ | ==== Dockerイメージの起動 | ||
+ | |||
+ | Dockerfileから構築したDockerイメージを起動し、Winodws側のプラウザから '' | ||
+ | |||
+ | <code bash> | ||
+ | $ docker run --name myphp74a -d -p 8080:80 myphp74: | ||
+ | 7980e3ed36186de445238eae2193b3f505fed04ac03a50c5ac3adb6cc7a405dd | ||
+ | </ | ||
+ | |||
+ | このように Dockerfile を使えば、Dockerイメージを素早く作れるだけでなく、GitHubなどのリポジトリによってチーム内で共有することもできます。 | ||
+ | |||
+ | \\ | ||
+ | |||
===== イメージのアップロード ===== | ===== イメージのアップロード ===== |