1. コンテナにnginxサービスをデプロイする
centos:7 イメージはコンテナを実行し、このコンテナ内に Nginx サービスをデプロイします。 [root@Docker ~]# docker pull centos:7 //イメージをダウンロードする [root@Docker ~]# docker run -itd --name webapp --restart=always centos:7 //webappという名前のコンテナを実行します [root@Docker ~]# docker cp nginx-1.16.0.tar.gz webapp:/root //ローカルのnginxパッケージをwebappコンテナにインポートします [root@Docker ~]# docker exec -it webapp /bin/bash //コンテナに入る [root@85099880dabe ~]# tar zxf nginx-1.16.0.tar.gz [root@85099880dabe ~]# cd nginx-1.16.0 [root@85099880dabe nginx-1.16.0]# yum install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel //関連する依存パッケージをダウンロードします [root@85099880dabe nginx-1.16.0]# useradd -M -s /sbin/nologin nginx //ログイン権限のない nginx ユーザーを追加します [root@85099880dabe nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx //コンパイルしてインストール

[root@85099880dabe nginx-1.16.0]# make && make install //コンパイルしてインストール [root@85099880dabe nginx-1.16.0]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ //ソフトリンクを作成する [root@85099880dabe nginx-1.16.0]# nginx [root@85099880dabe nginx-1.16.0]# nginx // nginxサービスが有効になっていることを確認します nginx: [emerg] 0.0.0.0:80 への bind() が失敗しました (98: アドレスは既に使用されています) nginx: [emerg] 0.0.0.0:80 への bind() が失敗しました (98: アドレスは既に使用されています) nginx: [emerg] 0.0.0.0:80 への bind() が失敗しました (98: アドレスは既に使用されています) nginx: [emerg] 0.0.0.0:80 への bind() が失敗しました (98: アドレスは既に使用されています) nginx: [emerg] 0.0.0.0:80 への bind() が失敗しました (98: アドレスは既に使用されています) [root@85099880dabe nginx-1.16.0]# cd /usr/local/nginx/html/ [root@85099880dabe html]# echo "TEST WEB" > index.html [root@85099880dabe html]# カール 127.0.0.1 テストウェブ
2. イメージを移行する
必要な環境:
docker1 ホスト: 192.168.45.129
docker2 ホスト: 192.168.45.134
1) docker1ホスト 新しく作成したdocker1のコンテナをdocker2ホストにインポートします。
[root@Docker ~]# docker commit webapp myweb //webappコンテナをmywebという名前のミラーにする sha256:b035b8e8a36140e1bdbda9cf3a736b139ea8a48db7871a10f509b8f34d4c0f82 [root@Docker ~]# docker save > myweb.tar myweb:latest //イメージをエクスポートする [root@Docker ~]# scp myweb.tar 192.168.45.134:/root //エクスポートしたtarballをdocker2ホストにcpします ホスト「192.168.45.134 (192.168.45.134)」の信頼性を確立できません。 ECDSA キーのフィンガープリントは d7:77:71:90:34:25:c0:ec:e0:b6:5c:cc:6b:44:93:7b です。 本当に接続を続行しますか (はい/いいえ)? はい 警告: '192.168.45.134' (ECDSA) が既知のホストのリストに永続的に追加されました。 [email protected] のパスワード: //パスワードは docker2 ホストのパスワードです myweb.tar 100% 353MB 176.4MB/秒 00:02
2) Docker2ホスト [root@Docker2 ~]# docker load < myweb.tar //tar パッケージをミラーに cp するだけです [root@Docker2 ~]# docker run -itd --name newweb myweb:latest //コンテナを起動する [root@Docker2 ~]# docker exec -it newweb /bin/bash //コンテナに入る [ルート@4e419b580248 /]# [root@4e419b580248 /]# nginx // nginxサービスが開始されたことを確認します nginx: [emerg] 0.0.0.0:80 への bind() が失敗しました (98: アドレスは既に使用されています) nginx: [emerg] 0.0.0.0:80 への bind() が失敗しました (98: アドレスは既に使用されています) nginx: [emerg] 0.0.0.0:80 への bind() が失敗しました (98: アドレスは既に使用されています) nginx: [emerg] 0.0.0.0:80 への bind() が失敗しました (98: アドレスは既に使用されています) nginx: [emerg] 0.0.0.0:80 への bind() が失敗しました (98: アドレスは既に使用されています) nginx: [emerg] まだbind()できませんでした [root@4e419b580248 /]# カール 127.0.0.1 テストウェブ
注: ここでは、docker1 ホスト コンテナーに構築されたシンプルな nginx 環境がミラーとして docker2 ホストに正常に移行されたことがわかります。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:- Docker Nginxコンテナの制作と展開の実装方法
- Dockerコンテナにnginxを簡単にデプロイするプロセスの分析
- Docker コンテナのデプロイの試み - マルチコンテナ通信 (node+mongoDB+nginx)
- Docker デプロイメント nginx 実装プロセスのグラフィックとテキストによる詳細な説明
- Docker イメージ + nginx を使用して Vue プロジェクトをデプロイする方法
- Django+Mysql+Redis+Gunicorn+NginxのDockerデプロイメントの実装
- Dockerでnginxをデプロイし、設定ファイルを変更する方法
|