Docker Linux のクイック インストールと Nginx のデプロイメント

序文

最近では、新しい Linux サーバー環境が導入され、すべてのアプリケーションが Docker ベースで導入されていますが、同様のニーズに遭遇した場合に誰もが直接使用できるように、検証済みの操作マニュアルがまとめられています。

この記事では、Docker Linux のインストールとアンインストール、Docker ユーザー グループの作成、Docker ベースの Nginx の展開、および簡単な構成に関する知識ポイントについて説明します。

Docker Linuxのインストール

ここで著者は、CentOS 8 バージョンと完全に互換性のある TencentOS Server のクラウド サーバーを使用しています。インストール中に、バージョン比較を実行できます。

古いバージョンをアンインストールする

サーバーを新しく購入した場合は、この手順をスキップできます。Docker がサーバーにインストールされている場合は、次のコマンドを使用してアンインストールできます。

yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

もちろん、インストール中にエラーが発生して再インストールしたい場合は、上記のコマンドを使用してアンインストールすることもできます。

Dockerイメージソースを追加する

Docker の公式イメージ ソースに直接アクセスしてインストールやダウンロードを行うと、ネットワークの問題が発生することがよくありますが、Docker のイメージ ソースを使用する前に変更することができます。

一般的にはAlibaba CloudのアドレスやTencent Cloudのアドレスなどが利用できますが、ここではTencent Cloudのサーバーを利用するため、Tencent Cloudのミラーソースを利用します。

次のコマンドを実行して画像ソースを追加します。

dnf config-manager --add-repo=https://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo

このうち、dnfコマンドは「Dandified Yum」の略称で、パッケージの自動インストール、更新、削除や依存関係の処理を行うソフトウェアパッケージマネージャーです。これは、Fedora、CentOS、RHEL などの RPM ベースの Linux ディストリビューションのデフォルトのパッケージ マネージャーです。

CentOS 8 より前は、yum がデフォルトのパッケージ マネージャーでした。CentOS 8 以降、dnf がデフォルトのパッケージ マネージャーになりますが、yum も引き続き使用できます。オペレーティング システムが現在 dnf コマンドをサポートしていない場合は、従来の yum コマンドを使用できます。

次のコマンドを実行して、追加された Docker イメージ ソースを表示できます。

dnf list docker-ce

# 如果是yum命令,
yum list docker-ce

上記のコマンドは、利用可能なすべての docker-ce パッケージを一覧表示します。

互換性を確保するため、以降のインストールおよび操作には yum コマンドを使用します。

Dockerのインストールと起動

Docker をインストールする前に、多くの場合、いくつかの基本的な依存関係をインストールし、ランダムな起動操作をセットアップする必要があります。

Docker のインストール

必要な依存関係パッケージをインストールします。

yum install yum-utils device-mapper-persistent-data lvm2

インストール前に、インストール可能なバージョンを照会します (省略可能)。

yum list docker-ce --showduplicates | sort -r

以下は Docker のインストールの重要なポイントです。手順は 1 つだけです。

yum install docker-ce docker-ce-cli containerd.io

インストールが成功したことを確認します。

docker version

#显示信息
Client: Docker Engine - Community
 Version:           24.0.6
 API version:       1.43
 Go version:        go1.20.7
 Git commit:        ed223bc
 Built:             Mon Sep  4 12:33:07 2023
 OS/Arch:           linux/amd64
 Context:           default
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

ドッカーの起動

Docker サービスを開始し、スタートアップをセットアップします。

# 设置开机启动
systemctl enable docker
# 启动Docker
systemctl start docker

起動が完了したら、次のコマンドを実行して、インストールが成功したかどうかを確認できます。

docker run hello-world

コンソールに次のような情報が出力される場合は、インストールが正常に開始されたことを意味します。

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:ac69084025c660510933cca701f615283cdbb3aa0963188770b54c31c8962493
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

Dockerユーザーグループ管理

デフォルトでは、Docker コマンドは Unix ソケットを使用して Docker エンジンと通信します。root ユーザーと docker グループ内のユーザーのみが Docker エンジンの Unix ソケットにアクセスできます。

セキュリティ上の理由から、通常、Linux システムでは root ユーザーは直接使用されません。したがって、より良いアプローチは、docker を使用する必要があるユーザーを docker ユーザー グループに追加することです。

Centos8 で docker ユーザーグループを作成し、その docker ユーザーで docker を操作するには、以下の手順で行います。

CentOS 8 システムに root ユーザーとしてログインし、docker という名前の新しいユーザー グループを作成します。

sudo groupadd docker

次に、ユーザーを docker グループに追加します。ユーザー名を自分のユーザー名に置き換えます。

sudo usermod -aG docker username

このコマンドは、ユーザーを docker グループに追加します。

次のコマンドを実行して、ユーザーが docker グループに追加されたことを確認します。

groups username

すべてがうまくいけば、リストされたグループに docker が表示されるはずです。

上記の変更を有効にするには、再度ログインするか、次のコマンドを使用する必要があります。

newgrp docker

最後に、sudo 権限なしで Docker を実行できることを確認します。次のコマンドを実行します。

docker run hello-world

すべてがうまくいけば、hello-world プログラムの出力が表示されるはずです。

Docker に基づいた Nginx のデプロイメント

ここではNginxのインストール手順とnginx.confの簡単な設定を説明します。

NGINX イメージのインストール

Nginx Docker イメージをインストールする前に、まずイメージを検索できます。

docker search nginx

「検索からミラーリング」の条件を満たす画像を選択し、プルします。

docker pull nginx:latest

イメージをプルした後、対応するイメージを構成し、コンテナーを起動できます。

Nginx の基本設定ファイルを取得するには、まず Nginx コンテナを起動し、対応する設定ファイルを取得した後、コンテナを削除し、正式なコンテナを再起動します。

#启动一个容器
docker run -d --name nginx nginx
# 查看 容器 获取容器ID 或直接使用名字
docker container ls
# 在当前目录下创建目录:conf 
mkdir conf
# 拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录($PWD当前全路径)
docker cp nginx:/etc/nginx/nginx.conf $PWD/conf
docker cp nginx:/etc/nginx/conf.d $PWD/conf

# 停止容器
docker container stop nginx
# 删除容器
docker container rm nginx

# 在当前目录下创建目录:html放静态文件
mkdir html

上記の操作により、ホスト上の Nginx に関するいくつかの基本的な構成ファイルとディレクトリ ファイルを取得できます。

これで、Nginx コンテナを正式にデプロイできるようになりました。

docker run -d -p 80:80  \
              -p 443:443  \
 --name nginx \
 -v /home/worker/nginx/html:/usr/share/nginx/html \
 -v /home/worker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
 -v /home/worker/nginx/conf/conf.d:/etc/nginx/conf.d \
 -v /home/worker/nginx/logs:/var/log/nginx \
 nginx

上記のコマンドの基本的な説明:

  • -d: コンテナーが常にバックグラウンドで実行されていることを示します。
  • -p 80:80: ポートをマップし、ローカル ポート 80 をコンテナ内のポート 80 にマップします。ポート 443 のマッピングは同じです。
  • --name: 作成したコンテナの名前を設定します。
  • -v: ローカルディレクトリ(ファイル)をコンテナで指定したディレクトリにマウントします。

Nginx コンテナを起動するときは、HTTP リクエストから HTTPS リクエストに切り替えるときにコンテナ ポートがマップされていないことを避けるために、コンテナの 80 ポートと 443 ポートを同時にホストにマップする必要があることに注意してください。

NGINX の構成

簡単な Nginx 構成は次のとおりです。

server {
    listen 443 ssl;
    server_name www.xxx.com; # 申请过证书的域名
    ssl_certificate     /etc/nginx/conf.d/certs/xxxx.pem;
    ssl_certificate_key /etc/nginx/conf.d/certs/xxxx.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;
    location / {
        root  /usr/share/nginx/html/admin;
        index  index.html index.htm;
    }
    location /admin {
        alias   /usr/share/nginx/html/admin;
        index  index.html index.htm;
    }
    location /s {
   proxy_pass http://127.0.0.1:8080/;
    }
}

上記の構成では、HTTPS 構成に注目してください。ssl_certificate および ssl_certificate_key に関連する証明書ファイルは、通常、/etc/nginx/conf.d の下に配置されるため、ホスト マシンに対応するディレクトリで証明書を置き換えることができます。 Nginx設定ファイルを変更します。

もちろん、Nginx のログ出力は通常、コンテナーによってマウントされたホストの対応するファイルに保存されます。

まとめ

これまで、イメージ ソースの変更方法、Docker のインストール方法、Docker の起動方法、独立した Docker ユーザー グループの構成方法、Nginx コンテナーのデプロイ方法、Linux (CentOS 8) での Nginx の簡単な構成について説明してきました。皆さんのお役に立てれば幸いです。

おすすめ

転載: blog.csdn.net/pantouyuchiyu/article/details/135386995