これまで一生懸命Dockerを避けてきたのですが、
どうもすでにDockerでサービスを運用することがトレンドになっているらしいので、
これはもうやらざるを得ないかと。
そもそも前のプロジェクトでは、AWSのECS、ECRを使ってコンテナイメージをデプロイして運用するのですが、
AWS以外では、Kubernetes+Dockerで運用するのが一般的らしい。
OSを仮想化するのはVMでもできるけど、
Dockerの方が最小限のリソースで複数稼働させることができます。
デプロイ時にコンテナイメージを作成してしまえば、
スケールイン、アウトも簡単にできてしまいます。
ということで、まずはPHPを動かすだけのDockerを使ってみる。
使用した環境はWSL環境。
Dockerデスクトップインストール済み。
WSLにログインして、ディレクトリ作成。
~/dockerenv/ex01$
Dockerfileを作成。
FROM php:7.4-apache
LABEL maintainer="username@hogehoge.com"
LABEL version="1.0"
LABEL description="シンプルなPHPイメージです。"
WORKDIR /tmp/mydir
イメージをビルド
~/dockerenv/ex01$ docker image build -t ex01/php:1.0 .
Dockerを起動し、Docker内のbashを起動
~/dockerenv/ex01$ docker container run -it --rm ex01/php:1.0 /bin/bash
Docker内のphpのバージョン表示、現在ディレクトリ表示、Dockerを抜ける
root@212df36f6268:/tmp/mydir# php -v
PHP 7.4.33 (cli) (built: Nov 15 2022 06:03:30) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
root@212df36f6268:/tmp/mydir# pwd
/tmp/mydir
root@212df36f6268:/tmp/mydir# exit
exit
イメージの情報表示
~/dockerenv/ex01$ docker image inspect ex01/php:1.0
LabelsブロックにDockerfileの内容が表示されていればOK
"Labels": {
"description": "シンプルなPHPイメージです。",
"maintainer": "username@hogehoge.com",
"version": "1.0"
},