docker nginxの基本的な使い方
dockerを触ってみて分かったこと。
dockerのコマンドを使ってimage作成やコンテナを実行する。 これとは別に、つまりdockerコマンドを使ってimage作成する代わりに、Dockerfileを作ってdocker buildコマンドを使うとimageを作成する事もできる。 ここに関して当初自分はDockerfileにはコンテナの起動に関する内容を記述できるものだと勘違いしていた。しかしDockerfileはどんなimageを作成するかを明文化するだけである。
docker build -t (イメージ名:タグ) (Dockerfileがあるディレクトリ)
これでimageを作成する事ができる。
そしてこのイメージを使ってコンテナを起動するわけだけれども、docker-compose.ymlの記述に従って作成したimageやダウンロードしたimageをコンテナとして起動することができると分かった。したがってdocker-composeでできることをdockerfileではどのように表現できるのかと考えだしたら当然できないことなので時間を無駄にしてしまう。。。
docker hubのnginx
https://hub.docker.com/_/nginx
Alpine Linux 対応 Nginx イメージのダウンロード
# docker pull nginx:alpine
Nginxコンテナの実行
# docker run -d -p 8080:80 nginx:alpine
これはホストの8080番ポートにアクセスすると80番ポートに渡される。
dockerfileで書くとどうなるか
FROM nginx:1.15.12-alpine COPY nginx.conf /etc/nginx/conf.d
#./nginx.conf server { listen 80; server_name local_host; location /static { alias /usr/share/nginx/html/static; } location /media { alias /usr/share/nginx/html/media; } location / { proxy_pass http://127.0.0.1:8000; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Forwarded-Proto $scheme; } }
dockerfileからimageを作成する
docker build -t myNginx:hoge .
コンテナを起動する
docker run myNginx:hoge