0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Docker on CentOS Stream8

Last updated at Posted at 2022-01-23

Docker環境をCentOS Stream8に構築した時の手順備忘。
Docker, docker-compose導入の他、複数のサービスを立ち上げた際にリバースプロキシ経由でリクエストを実現したいためにnginxの導入を行った。

Dockerの導入

インストール手順
# Dockerとの競合パッケージを削除
$ dnf -y remove podman runc
$ yum install -y yum-utils
# リポジトリの登録
$ yum-config-manager --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
$ yum install docker-ce docker-ce-cli containerd.io
# インストールされているか確認
$ docker -v
Docker version 20.10.12, build e91ed57
# docker起動
$ systemctl start docker

Docker Composeの導入

# 最新版をダウンロード
$ curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# バイナリに実行権限を付与
$ sudo chmod +x /usr/local/bin/docker-compose
# インストールされているか確認
$ docker-compose -v
docker-compose version 1.29.2, build 5becea4c
# コマンド補完機能の導入
$ curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

nginxの導入

任意のディレクトリに下記ファイルを作成

nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

yum info nginxを実行し、下記のようなリポジトリ情報が取得できればOK

$ yum info nginx
Last metadata expiration check: 0:05:14 ago on Sat 22 Jan 2022 05:50:14 PM JST.
Available Packages
Name         : nginx
Epoch        : 1
Version      : 1.14.1
Release      : 9.module_el8.0.0+1060+3ab382d3
Architecture : x86_64
Size         : 570 k
Source       : nginx-1.14.1-9.module_el8.0.0+1060+3ab382d3.src.rpm
Repository   : appstream
Summary      : A high performance web server and reverse proxy server
URL          : http://nginx.org/
License      : BSD
Description  : Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
             : IMAP protocols, with a strong focus on high concurrency, performance and
             : low memory usage.

yumでインストール

$ yum -y install nginx
$ nginx -v
nginx version: nginx/1.14.1

実行と起動の自動化

$ systemctl enable nginx
$ systemctl start nginx

firewall-cmdでhttpポートを解放するのを忘れずに。

$ firewall-cmd --add-port=80/tcp --permanent
$ firewall-cmd --reload

ブラウザ上でサーバIPにアクセスし、nginxのWelcome画面が出たら成功。

【重要】nginxのSELinux設定

SELinuxの設定により、nginx経由でDockerにアクセスしようとすると502Bad Gatewayになる場合がある。
CentOS Stream8ではSELinuxがデフォルトで有効なため、本設定をしないとうまくいかなかった。
SELinuxの外部接続許可パラメータを確認する。

$ getsebool httpd_can_network_connect
httpd_can_network_connect --> off

これをonに変更する。 -Pは恒久設定の意味。

$ setsebool -P httpd_can_network_connect 1
$ getsebool httpd_can_network_connect
httpd_can_network_connect --> on

これでうまくいった。
尚、接続エラー等の調査をする場合は、auditログを確認するのが有効。
tail -f /var/log/audit/audit.log

参考

[docker公式] https://docs.docker.com/engine/install/centos/
https://www.server-world.info/query?os=CentOS_Stream_8&p=docker&f=1
https://docs.docker.jp/compose/toc.html
https://hirooooo-lab.com/development/install-nginx-for-centos/
[docker UI(自身の過去記事)] https://qiita.com/kod314/items/f96541373398dfffea37
https://dev.classmethod.jp/articles/redhat-selinx-might-block-network-connection-to-servers-from-apache-php/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?