AlmaLinux8でdocker, docker-composeをインストールする
本日はdocker, docker-composeをインストールしてみます。
最後にテストとして、nginx+php-fpmを立ち上げてみて、アプリ確認とします。
環境
- EC2 t3.micro
- AlmaLinux8
手順
アップデート
dnf -y update
基本インストール
dnf -y install git wget
※ gitは手順に出てきませんが、個人的に必要だったので入ってますw
リポジトリ追加
# 追加
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 確認
dnf repolist
インストール
# docker
dnf -y install docker-ce
# docker-compose
wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-linux-x86_64
chmod +x /usr/local/bin/docker-compose
# 確認
docker --version
グループ追加
個人ユーザーでdockerを実行したい場合にはグループ追加も行いましょう。
※ 今回はrootのまま最後まで作業しています。
usermod -aG docker [個人ユーザー]
docker起動
systemctl start docker
systemctl enable docker
なんとインストールはこれだけで完了ですね。短い!
確認
それではnginx+php-fpmの環境を作るために少し準備が必要なので、作業します。
準備
# ディレクトリ作成
mkdir -p ~/docker/web
mkdir -p ~/docker/src
# docker-compose.yml作成
cd ~/docker
vi docker-compose.yml
-----
version: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
depends_on:
- app
volumes:
- ./web/default.conf:/etc/nginx/conf.d/default.conf
- ./src:/var/www/
app:
image: php:7.4.28-fpm
volumes:
- ./src:/var/www/
-----
# docker-compose.yml作成
cd ~/docker
vi ./web/default.conf
-----
server {
listen 80;
root /var/www/;
index index.php index.html;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / { #以下を追記
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
-----
# 実行ファイル作成
vi ./src/index.php
-----
<?php
phpinfo();
?>
-----
実行
それでは実行してみましょう
cd ~/docker
docker-compose up -d
ブラウザ確認
http://IPアドレス/にアクセス
ちなみにコンテナやイメージを削除するには・・・
# 実行中のコンテナを確認
docker ps -a
--------
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2f62f9c922a1 nginx:latest "/docker-entrypoint.…" 8 minutes ago Up 8 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp docker-web-1
f4305ddec26b php:7.4.28-fpm "docker-php-entrypoi…" 8 minutes ago Up 8 minutes 9000/tcp docker-app-1
--------
# コンテナを停止
docker stop 2f62f9c922a1
docker stop f4305ddec26b
# コンテナを確認
docker ps -a
--------
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2f62f9c922a1 nginx:latest "/docker-entrypoint.…" 9 minutes ago Exited (0) 7 seconds ago docker-web-1
f4305ddec26b php:7.4.28-fpm "docker-php-entrypoi…" 9 minutes ago Exited (0) 2 seconds ago docker-app-1
--------
-> STATUSがExitedになりました
# コンテナを削除
docker rm -f 2f62f9c922a1
docker rm -f f4305ddec26b
# イメージ確認
docker image ls
--------
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 12766a6745ee 9 days ago 142MB
php 7.4.28-fpm aa6c0c7d733d 9 days ago 443MB
--------
-> コンテナを削除しても、まだイメージは残っています
# イメージ削除
docker rmi 12766a6745ee
docker rmi aa6c0c7d733d
fin.
以上で、docker, docker-composeインストール、さらにnginx+php-fpm環境の簡易構築手順は完了です。