CodeGodRoadブログ展開チュートリアル[フルバージョン]|LinuxベースのDocker展開チュートリアル|非常に詳細

説明する

  • 序文:最近、Biz Station Code Godの道路でSpringBootトレーニングプロジェクトを行いました。最初の操作、特に展開部分で多くの困難と問題に遭遇しました。ここでは、自分の展開を書き留めます。参考までに、貴重なコメントを投稿することもできます。
  • ビープステーションコードの神のビデオリンク:https://www.bilibili.com/video/BV1Gb4y1d7zb?p = 36
  • 私のウェブサイト:www.zhangshidi.space(しばらくすると他のコンテンツに更新される可能性があります〜)
  • 作成するのは簡単ではありません。皆さんが通りかかって、親指を立ててください。
  • 一部の手順が間違っている可能性があります。手動で実行できます(たとえば、私が読んだチュートリアルでは、mkdirを使用してblog.confなどのファイルを作成していますが、ファイル形式に問題があり、常にサフィックスが付いていますblog.conf.swpなど次に、左側のファイルディレクトリに手動で新しいファイルを作成しましたが、後でタッチで新しいファイルを正常に作成できることがわかりました。mkdirの方がフォルダを作成するのに適しています)

事前知識

  • 以下の知識ポイントは、あなたが最初に検索して読んで、一般的な理解を持っていることを望んでいます。
    • Linuxとは何ですか?Linuxをマスターするためのいくつかの基本的な手順。
    • Docker展開の原則であるDockerとは
    • nginxとは
  • 何しようか
    • Vueフロントエンドプロジェクトをクラウドサーバーにパッケージ化します
    • springbootバックエンドプロジェクト(メインWebページ、以下アプリと呼びます)(バックエンド管理システム、以下管理者と呼びます)をクラウドサーバーにパッケージ化します。
    • dockerを使用して、mysql、redis、ngix、app、adminをデプロイします。次に、docker-composeを使用してサービスの手配を実行し、プロジェクトが順番に開始されるようにします。

ファイルディレクトリ

  • 私の考えに完全に従っている場合は、私のファイルディレクトリをチェックして、ファイルが正しくないかどうかを確認できます。ここに画像の説明を挿入

1環境の準備:サーバーの購入(およびドメイン名)

  • 基本環境(クラウドサーバーとドメイン名)–事前に行ってください!
  • 私のクラウド構成:AlibabaCloud1コア2GiBサーバー+TencentCloudドメイン名。
  • クラウドサーバーは2台目のコンピューターに相当しますが、クラウド内にあります。クラウド内での関係により、自由に嫌がらせをすることができます。さらに厄介な問題が発生した場合は、システムを損傷することなく直接再インストールできます。私たちのコンピュータ自体に影響を与えます。
    • まず、クラウドサーバーが必要です。次にクラウドサーバーを購入する必要があります。ドメイン名が必要な場合は、ドメイン名を購入し、ドメイン名とクラウドサーバーIPの間のバインド(解決)を完了する必要があります。住所。ドメイン名なしで一時的にIPアドレスを使用することも可能です。
    • 事前にこれを行う理由:ドメイン名を提出する必要があるため、提出期間は1週間ほどかかると言われています。私の(Tencent Cloudで購入した通常のドメイン名-10年180)は問題ありません。ファイリングは1日で完了します。クラウドサーバーは、昨年2021年にダブルイレブンで開催されたAlibabaCloudイベントで購入されました。どちらがいいのか、どちらが悪いのかはほぼ同じだと思いますので、安いものを選んで購入しました。
    • サーバーを購入したら、サーバーにLinuxシステムをインストールする必要があります。私はcentoS7.8バージョンを選択しました。
    • 次に、このクラウドサーバーを使用するために、クラウドサーバーに直接指示を入力するか、Xshellなどのサードパーティツールを使用できます。(私はバグが少なく、より流暢なxshellを使用しています)
    • 上記の手順を自分で検索してください。
    • これらの手順を完了した後、非常に重要なことはポートを開くことです。AlibabaCloudの場合、ポート8888、redisポート、データベースポートなど、セキュリティグループルールの構成に含まれます。そうでない場合は、アクセスできません。
      ここに画像の説明を挿入

2Dockerのインストール

  • 私のdockerの理解では、dockerはコンテナーとして理解できます。これは、さまざまな環境と構成をデプロイできる、よりミニチュアのLinuxシステムに相当します。
    • Dockerのより具体的な知識については、次の記事を参照してください:https://blog.csdn.net/weixin_46628200/article/details/106668209

インストールを開始します

  • 最初にクラウドサーバー管理パネル(リモート接続)に入ります。このような空のページが表示されます。次に、ここにさまざまなコマンドを入力します。クラウドサーバー運用インターフェース-左上隅に2つの記号があります。1つは[新しいコマンドウィンドウ]、もう1つは[Visual View File]で、通常のファイルの表示とほぼ同じです。怠惰すぎてコピーコマンドを使用できない場合は、ファイル内を直接移動できることがあります。一般的な操作は高速です

Dockerのインストール

  • 次の一連のコマンドをコマンドウィンドウに段階的に入力します
# 1、yum 包更新到最新 
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y 
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
#启动docker
/bin/systemctl start docker.service

Dockerのインストールと起動
Dockerイメージをプルします

  • Dockerイメージは通常のイメージとして理解でき、DockerイメージはDockerコンテナーを作成するために使用されます。
  • それでもコマンドウィンドウに次のコマンドを入力します
docker pull nginx
docker pull redis:5.0.3
docker pull java:8
docker pull mysql:5.7

3 docker configure mysql

  • 次に、クラウドサーバーをまとめてホストと呼びます。

アイデア:MySQLを構成するためのDockerを構築し、MySQLデータファイルをホストに配置します。これは少し面倒ですが、セキュリティは向上しています。

mysqlを構成する前に、まず自分のホストにMySQLをインストールし、Linuxでのnannyレベルのmysqlインストールチュートリアルに従うことを願っています。
これは、mysqlデータをホストマシンに保存したいので、dockerにmysql環境のみが構成されているためです。データベースファイルがdockerに保存されている場合は、コンテナーが削除されたら(rmコマンドを使用) 、すべてのデータファイルが消えます。、非常に危険です。

  • ホスト上にMySQLディレクトリを作成します(フォルダコマンドmkdirを作成します。cdはディレクトリの切り替えコマンドです)
mkdir -p /mnt/docker/mysql
cd /mnt/docker/mysql
  • 先に進み、コマンドウィンドウで次のコマンドを実行します
    • これrunは、mysqlコンテナを[作成して実行]する役割を果たします
    • -pは、ホスト3307ポートとコンテナ3306ポートの間のマッピングを確立するためのものです。
    • -vは、マウントディレクトリを生成します。マウントは、ファイルディレクトリの共有/同期と理解できます。コロンの前のディレクトリはホストディレクトリであり、コロンの後のディレクトリはドッカーのMySQLデータディレクトリです。ドッカーが削除された場合でも、データは引き続きホストに保持できます。ホストのディレクトリにあります。
      • Code Godのメモには、構成ファイル、ログ、データファイルの3つのディレクトリがマウントされていることに注意してください。実際の操作ではログにエラーが発生し続けるので、最も重要なデータファイルのみを構成します
    • 次のステップは、ホストMySQLのデフォルトのパスワードを指定することです。デフォルトのパスワードが設定されていない場合、エラーが報告される場合があります。
docker run -id \
-p 3307:3306 \
--name=mysql \
-v /mnt/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mysql:5.7

マウントを使用したファイルのマッピング

次に、コンテナを入力して権限を開く必要があります

  • docker psコンテナがすでに実行されているかどうかを確認します
    • mysql5.7コンテナがすでに実行されていることを確認する必要があります
  • コンテナにdocker exec -it mysql bash
  • コンテナへのMYSQLmysql -uroot -p
    • 上記のようにパスワードを入力します。rootとして設定します。直接入力するだけです。(インターフェイスに空白が表示されますが、パスワードはすでに入力されています。Enterキーを押して確認してください。)
  • 次の手順は、上記のホストmysqlインストールする手順10と同様 です。
    • show databases;
    • use mysql ;
    • show tables;
    • select user,host from user;(SQLエラーが報告される場合があります。「パッケージフィールド」を追加するだけです)
      • rootユーザーに対応するホストは%ではないことがわかります。アクセス許可を開くには、ホストを%に変更する必要があります。
    • update user set host ='%'where user ='root';
    • update user set host ='%'where user ='root' and host='localhost';
    • 両方の文を実行するのが最善です。当時の私の状況では、2人のルートユーザーがいました。実行の結果、ホストに対応する1つのルートが空になり、もう1つのホストが%になりました。
    • (高度な権限を開くこともできますgrant all privileges on *.* to root@'%' identified by 'root' with grant option;
    • 権限の更新flush privileges;
  • exitMySQLをexit終了してから、MySQLコンテナを終了します

mysqlのDockerコンテナが正常に構成されているかどうかを確認し、公開されているDockerIPアドレスを表示します

  • これdocker logs -f mysqlを使用して、構成が成功したかどうかを確認しますここに画像の説明を挿入
  • docker inspect mysql→対応するmysqldockerコンテナのIPアドレス172.17.0.2を確認してください。このアドレスを覚えておいてください。これは、以下のパッケージングバックグラウンドアプリケーションに必要です。
    MySQLDockerコンテナのIPアドレス

環境が適切になったら、データベースファイルblog.sqlをインポートする必要があります

  • 前述のように、ホスト/mnt/docker/mysql/dataディレクトリと/var/lib/mysqlDockerコンテナのアドレスの間のマッピングを実装しました。したがって、blog.sqlファイルをホストのこのディレクトリにインポートすると、blog.sqlはdockerの対応するディレクトリにも表示されます。 。以下の具体的な操作は次のとおりです。
cd /mnt/docker/mysql/data
rz
  • その中で、cdはディレクトリを切り替えることを意味し、rzはファイルをアップロードすることを意味します。この時点で、blog.sqlをインポートできます。次に、ファイルがDockerコンテナに表示されるかどうかを確認します
  • コンテナにdocker exec -it mysql bash
  • マウントディレクトリに移動しますcd /var/lib/mysql
  • このディレクトリ内のすべてのファイルを見ると、ls理論的にはblog.sqlもこのディレクトリにあることがわかります。
  • 次に、DockerでSQLを実行します。
    • mysql -uroot -p、パスワードを入力して、Dockerにデータベースを入力します
    • データベースを作成するcreate database blog;
    • コンテナに戻るexit
    • ファイルをデータベースにインポートしますmysql -uroot -p blog < blog.sql;
    • スイッチデータベースuse blog;
    • SQLを実行してデータベースを保存しますsource blog.sql;
  • 結果チェック
    • use blog; show tables; select * from ms_admin;
    • 結果を見つけることができれば(下の図に示すように)、展開が成功したことを意味します。
      データベースデータが正常にインポートされました
  • 実際の展開では、リンク障害、アクセス拒否、jdbc接続障害など、データベースに最も多くの時間を費やしています。これは、データベースのアクセス許可が原因である可能性があります。ルートに対応するホスト権限がこれらであるかどうかを確認してください。
  • Code Godのメモに書かれたデータベース構成ファイルもあります。ここでは書きませんでした。とりあえず、デフォルトの構成を使用してください。

4 docker configureredis

  • これは非常に簡単で、1つのコマンドで実行できます
  • docker run -id --name=redis -p 6379:6379 redis:5.0.3
  • 試験
    • docker ps現在実行中のコンテナーを表示します。理論的には、mysqlとredisの両方が実行されていることがわかります。
    • docker ps -aすべてのコンテナーを表示します(実行されていない場合を含む)
  • docker inspect redis後でプロジェクトをパッケージ化するときに使用されるredisdockerに対応するIPアドレスを確認する必要があります。ここでは172.17.0.3です。
    redisdockerに対応するIPアドレス

5Dockerfileはバックエンドイメージを構築します

  • MySQLやredisなどのミラーを直接プルすることはできますが、バックエンドプロジェクトのミラーは、自分でパッケージ化して構築する必要があります。
  • Dockerfileのコード神の説明は次のとおりです
    • Dockerfileはテキストファイルです
    • コマンドが含まれています
    • 各命令は、ベースイメージに基づいてレイヤーを構築し、最後に新しいイメージを構築します
    • 開発者向け:開発チームに完全に一貫した開発環境を提供できます
    • テスターの場合:開発中にビルドされたイメージを直接取得するか
      、Dockerfileファイルを介して新しいイメージをビルドして作業を開始できます
    • 運用および保守担当者の場合:展開中にアプリケーションのシームレスな移行を実現できます

まず、アイデアとパッケージのパラメーターを構成する必要があります

  • 接続パラメータの設定-アイデアの構成
  • クロスドメイン構成に関するパラメータもあります。以下を参照することもできます。独自のドメインを通過させる必要があります。その後、クロスドメイン構成が教師によって作成されたものから2番目の構成に変更されます。その理由は図のとおりですので、どうぞよろしくお願いします!ここに画像の説明を挿入-jarパッケージをパッケージ化して生成しますパッケージ構成
  • ローカルファイルを見つけて、それを見つけるのに適した場所に置き、後でディレクトリにインポートする準備をします
    パックファイル処理

次に、jarパッケージを/ mnt / docker / appディレクトリにインポートし、イメージの構成ファイルをビルドして、イメージを実行する必要があります。

  • 最初に新しいディレクトリを作成しますmkdir /mnt/docker/app
  • アップロード機能を使用できる構成yum -y install lrzsz
  • このディレクトリに切り替えますcd /mnt/docker/app
  • ファイルをアップロードするrz
  • 名前を変更するmv blog-api-1.0-SNAPSHOT.jar blog_api.jar
  • イメージを構築するための構成ファイルを構成します
    • 新しいファイルを作成するtouch blog_dockerfile
    • ファイルの内容を変更するvim blog_dockerfile
    • 次のコンテンツを貼り付けます(個人パラメータを自分で変更します)
FROM java:8
MAINTAINER zhangshidi <[email protected]>
ADD ./blog_api.jar /app.jar
CMD java -jar /app.jar --spring.profiles.active=prod
  • 実行イメージdocker build -f ./blog_dockerfile -t app .
  • チェックdocker imagesすると、アプリのDockerがすでに実行されていることがわかります。

6フロントエンドイメージを構築します

フロントエンドの構成、パッケージ化、アップロードを変更し、ファイルの場所を微調整します。

  • 正面に行こう

    • IPを変更ここに画像の説明を挿入
  • プロジェクトをビルドすると、彼は自動的にプロジェクトを生成してdistし、ファイルを手動で圧縮してクラウドサーバーに送信します。ここに画像の説明を挿入

  • コマンドウィンドウインターフェイスに戻り、解凍機能をインストールする必要があります

#获取安装列表  yum安装列表中搜索zip/unzip是否存在

yum list | grep zip/unzip

#执行安装支持zip命令 根据提示输入y允许安装

yum install zip

#执行安装支持unzip命令 根据提示输入y允许安装

yum install unzip
  • 対応するフォルダを作成します
    • mkdir /mnt/zhang
    • mkdir /mnt/zhang/blog
  • ブログディレクトリに切り替えますcd /mnt/zhang/blog
    -アップロードrz、フロントエンドのdist圧縮パッケージをアップロードします
  • 解凍unzip dist.zip
  • 次に、ファイルの場所を/ mnt / zhang / blogの下に移動しますls。これは、dist.zip、index.html、staticの3つのファイルである必要があります。実際、有用なファイルはindex.htmlおよびstaticである必要があります。
    • 移動方法は、左側のファイルディレクトリに直接ドラッグしました。対応するコマンドもあります。
      ここに画像の説明を挿入

7Docker-composeサービスオーケストレーション

  • サービスオーケストレーションは主にDockerComposeを使用して、springbootとnginxをバッチで開始します
    • Springbootは私たち自身のパッケージプロジェクトです
    • nginxの役割:①サーバー上の静的ファイル(HTML、画像など)は、HTTPプロトコルを介してクライアントに表示されます。②リバースプロキシサーバー。nginxプロキシはフロントエンドリソースクライアントであり、HTTPプロトコルを介してWebサイトアプリケーションサーバーに直接アクセスできます。Webサイト管理者は途中でNginxを追加し、クライアントはNginxを要求し、Nginxはアプリケーションサーバーを要求します。結果はクライアントに返されます。プロキシのレイヤーを追加すると、負荷分散、仮想ホスティング、その他の効果を実現できます。詳細はこちらをご覧ください

まず、DockerComposeをインストールします

# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。 
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 设置文件可执行权限 
chmod +x /usr/local/bin/docker-compose
# 查看版本信息 
docker-compose -version

対応するディレクトリを作成し、docker-compose.yml構成ファイルを書き込みます

  • vimファイルを変更することを意味します
mkdir /mnt/docker/docker-compose
cd /mnt/docker/docker-compose
touch docker-compose.yml
vim docker-compose.yml
  • 次のコンテンツをdocker-compose.ymlにコピーします。書き込み後、Escキーを押して編集モードを終了し、Enterキーを押すと、:wq保存して終了できます〜
version: '3'
services:
  nginx:
   image: nginx
   container_name: nginx
   ports:
    - 80:80
    - 443:443
   links:
     - app
   depends_on:
    - app
   volumes:
    - /mnt/docker/docker-compose/nginx/:/etc/nginx/
    - /mnt/zhang/web:/zhang/web
    - /mnt/zhang/blog:/zhang/blog
   network_mode: "bridge"
  app:
    image: app
    container_name: app
    expose:
      - "8888"
    network_mode: "bridge"
  • このファイルにはdepends_onディレクトリを配置する機能があります。このマウントディレクトリについては、自分のディレクトリの順序に注意してください。さまざまなチュートリアルに従うときは、ディレクトリの順序と自分のディレクトリの順序を区別する必要があります。以下は私のディレクトリの順序です。
    ここに画像の説明を挿入

次に、nginxファイルディレクトリと関連する内部構成ファイルを構成する必要があります

  • まず、nginx.confファイルを取得する必要があります
mkdir -p ./nginx
cd /mnt/docker/nginx
touch nginx.conf
vim nginx.conf
  • 次のコンテンツをコピーします
user nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf;
}
  • 新しいconf.dフォルダーを作成してから、新しいblog.confファイルを作成します
mkdir conf.d
cd conf.d
touch blog.conf
vim blog.conf

blog.conf構成を変更し、次のファイルをに入れます

gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 2;
gzip_vary off;
upstream appstream{
     
        server app:8888;
}
server{
    # 监听端口
    listen  80;
    # 主机名称/地址
    server_name www.zhangshidi.space zhangshidi.space;
    index   index.html;
    # 前端服务
     location / {
        root /zhang/blog/;
        # 刷新页面后跳转到当前页面
        try_files $uri $uri/ /index.html;
        index index.html;
     }

     # 后端api
     location /api {
                proxy_pass http://appstream;
    }

    location ~* \.(jpg|jpeg|gif|png|swf|rar|zip|css|js|map|svg|woff|ttf|txt)$ {
        root /zhang/blog/;
        index index.html;
        add_header Access-Control-Allow-Origin *;
    }
}
  • コード神の構成にはssl/tsl構成もあります。必要に応じて、申請してから構成することができます。ここでは省略します。

  • というファイルもあることがわかりますmime.types
  • mime.typesこれはnginxの必需品です。インターネットからnginxをダウンロードしてファイルを取り出してrz入力しました。また、新しいファイルを作成してコードをコピーすることもできます。コードは次のとおりです。

types {
    text/html                                        html htm shtml;
    text/css                                         css;
    text/xml                                         xml;
    image/gif                                        gif;
    image/jpeg                                       jpeg jpg;
    application/javascript                           js;
    application/atom+xml                             atom;
    application/rss+xml                              rss;

    text/mathml                                      mml;
    text/plain                                       txt;
    text/vnd.sun.j2me.app-descriptor                 jad;
    text/vnd.wap.wml                                 wml;
    text/x-component                                 htc;

    image/png                                        png;
    image/svg+xml                                    svg svgz;
    image/tiff                                       tif tiff;
    image/vnd.wap.wbmp                               wbmp;
    image/webp                                       webp;
    image/x-icon                                     ico;
    image/x-jng                                      jng;
    image/x-ms-bmp                                   bmp;

    font/woff                                        woff;
    font/woff2                                       woff2;

    application/java-archive                         jar war ear;
    application/json                                 json;
    application/mac-binhex40                         hqx;
    application/msword                               doc;
    application/pdf                                  pdf;
    application/postscript                           ps eps ai;
    application/rtf                                  rtf;
    application/vnd.apple.mpegurl                    m3u8;
    application/vnd.google-earth.kml+xml             kml;
    application/vnd.google-earth.kmz                 kmz;
    application/vnd.ms-excel                         xls;
    application/vnd.ms-fontobject                    eot;
    application/vnd.ms-powerpoint                    ppt;
    application/vnd.oasis.opendocument.graphics      odg;
    application/vnd.oasis.opendocument.presentation  odp;
    application/vnd.oasis.opendocument.spreadsheet   ods;
    application/vnd.oasis.opendocument.text          odt;
    application/vnd.openxmlformats-officedocument.presentationml.presentation
                                                     pptx;
    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                                                     xlsx;
    application/vnd.openxmlformats-officedocument.wordprocessingml.document
                                                     docx;
    application/vnd.wap.wmlc                         wmlc;
    application/x-7z-compressed                      7z;
    application/x-cocoa                              cco;
    application/x-java-archive-diff                  jardiff;
    application/x-java-jnlp-file                     jnlp;
    application/x-makeself                           run;
    application/x-perl                               pl pm;
    application/x-pilot                              prc pdb;
    application/x-rar-compressed                     rar;
    application/x-redhat-package-manager             rpm;
    application/x-sea                                sea;
    application/x-shockwave-flash                    swf;
    application/x-stuffit                            sit;
    application/x-tcl                                tcl tk;
    application/x-x509-ca-cert                       der pem crt;
    application/x-xpinstall                          xpi;
    application/xhtml+xml                            xhtml;
    application/xspf+xml                             xspf;
    application/zip                                  zip;

    application/octet-stream                         bin exe dll;
    application/octet-stream                         deb;
    application/octet-stream                         dmg;
    application/octet-stream                         iso img;
    application/octet-stream                         msi msp msm;

    audio/midi                                       mid midi kar;
    audio/mpeg                                       mp3;
    audio/ogg                                        ogg;
    audio/x-m4a                                      m4a;
    audio/x-realaudio                                ra;

    video/3gpp                                       3gpp 3gp;
    video/mp2t                                       ts;
    video/mp4                                        mp4;
    video/mpeg                                       mpeg mpg;
    video/quicktime                                  mov;
    video/webm                                       webm;
    video/x-flv                                      flv;
    video/x-m4v                                      m4v;
    video/x-mng                                      mng;
    video/x-ms-asf                                   asx asf;
    video/x-ms-wmv                                   wmv;
    video/x-msvideo                                  avi;
}
  • チェック、使用ls説明書
    ここに画像の説明を挿入

8テストを実行します

  • この時点で、デプロイメントは基本的に完了しています。

  • またdocker ps、4つのコンテナが実行されていることを確認してくださいここに画像の説明を挿入

  • docker-composeディレクトリに切り替えて、コンテナを起動します。コンテナを起動および停止するための一般的な手順は次のとおりです。

docker-compose up #直接启动

docker-compose up -d #代表后台启动

docker-compose down  #停止并删除容器

docker-compose start #启动已有容器

docker-compose stop  #停止运行的容器
  • 一般的にdocker-compose up、ウェブサイトに問題がないか直接確認します。問題がある場合は、次の2つのコマンドを使用して改善します。
    • ngixログを確認してください。docker logs nginx
    • バックエンドログを表示する:docker-compose logs
  • デプロイが完全に完了したと感じたら、バックグラウンドでdocker-compose up -dを起動して、サーバーの電源をオフにして実行できるようにします。

  • 最後に、私が参照した2つの記事のアイデアに感謝します。どちらもよく書かれていますが、ここで実装するのが難しい詳細もあります。また、CodeGod氏の努力にも感謝したいと思います。それらを比較してください、私はそれらがあなたを助けると信じています。
  • 別の質問があります。なぜバックグラウンド管理の展開がないのかと疑問に思うかもしれません。
    • バックグラウンド管理を詳しく見てみましょう。SpringSecurityの場合としか言えず、バックグラウンド管理の役割はまったく果たしていません...展開されていても意味がありません。

ご来店ありがとうございました。文章が良いと思われる場合は、いいねと励ましをお願いします。ご不明な点がございましたら、メッセージを残してください。問題点をご指摘ください。

  • また、自分でフラグを設定し、Spring Cloudを学び、githubで最も多くのスターを獲得してモールプロジェクトを征服します

おすすめ

転載: blog.csdn.net/dolpin_ink/article/details/123056852