DockerとFastDFSのインストールコマンドと使い方の詳しい説明

DockerとFastDFSのインストールコマンドと使い方の詳しい説明

Dockerの機能

1) すぐに始められる

ユーザーがプログラムを「Docker 化」するには、わずか数分しかかかりません。 Docker は「コピーオンライト」モデルを採用しており、アプリケーションの変更が非常に迅速です。「コードを自由に変更できる」状態に到達していると言えます。

その後、アプリケーションを実行するためのコンテナを作成できます。ほとんどの Docker コンテナは 1 秒以内に起動します。ハイパーバイザーのオーバーヘッドを排除することで、Docker コンテナは高いパフォーマンスを実現し、同じホスト マシン上でより多くのコンテナを実行できるため、ユーザーはシステム リソースを最大限に活用できます。

2) 責任の論理的分類

Docker を使用すると、開発者はコンテナ内で実行されるアプリケーションについてのみ心配する必要があり、オペレーターはコンテナの管理方法のみを心配する必要があります。 Docker 設計の目的は、開発者がコードを記述する開発環境とアプリケーションがデプロイされる本番環境間の一貫性を高めることです。これにより、「開発中は正常だったのに、運用保守の問題に違いない(テスト環境は正常だが、オンライン化後に問題が発生したので、運用保守の問題に違いない)」という認識が軽減されます。

3) 迅速かつ効率的な開発ライフサイクル

Docker の目標の 1 つは、コードの開発、テスト、展開、オンライン操作のサイクルを短縮し、アプリケーションの移植性、構築の容易さ、共同作業の容易さを実現することです。 (簡単に言うと、Docker は多くのオブジェクトを格納できる箱のようなものです。これらのオブジェクトが必要な場合は、箱から 1 つずつ取り出すことなく、大きな箱から直接取り出すことができます。)

4) サービス指向アーキテクチャの使用を奨励する

Docker は、サービス指向アーキテクチャとマイクロサービス アーキテクチャも推奨します。 Docker では、単一のコンテナで 1 つのアプリケーションまたはプロセスのみを実行し、分散アプリケーション モデルを形成することを推奨しています。このモデルでは、アプリケーションまたはサービスを内部的に相互接続された一連のコンテナとして表すことができるため、分散アプリケーションのデプロイ、アプリケーションの拡張またはデバッグが非常に簡単になり、プログラムのイントロスペクションも向上します。 (もちろん、1つのコンテナで複数のアプリケーションを実行することもできます)

Dockerで何をするか

コンテナは分離を提供し、さまざまなテストに適したサンドボックス環境を提供できます。さらに、コンテナ

PHP の「標準」的な性質により、サービスの構成要素を作成するのに最適です。 Docker のいくつかのアプリケーション シナリオは次のとおりです。

  • ローカル開発とビルドのプロセスを高速化し、効率と軽量性を高めます。ローカル開発者は Docker コンテナを構築、実行、共有できます。コンテナは開発環境で構築でき、その後テスト環境に簡単にプッシュし、最終的には本番環境にプッシュできます。
  • これにより、独立したサービスまたはアプリケーションが、異なる環境で同じ動作結果を達成できるようになります。これは、マイクロサービスに大きく依存するサービス指向のアーキテクチャとデプロイメントで特に役立ちます。
  • Docker を使用して、テスト用の分離された環境を作成します。たとえば、Jenkins CI などの継続的インテグレーション ツールを使用して、テスト用のコンテナを起動します。
  • Docker を使用すると、開発者は最初から本番環境にデプロイしてテストするのではなく、複雑なプログラムやアーキテクチャをローカル マシン上で構築してテストすることができます。

インストールと操作

1. UbuntuにDockerをインストールする

Ubuntuのaptソースインデックスを更新する

sudo apt-getアップデート

apt が HTTPS 経由でリポジトリを使用できるようにするパッケージをインストールします。

sudo apt-get インストール \
  apt-transport-https \
  ca証明書\
  カール\
  ソフトウェアプロパティ共通

Docker公式GPGキーを追加する

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key を追加 -

Docker安定リポジトリの設定

sudo aptリポジトリを追加\
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  安定した"

リポジトリを追加したら、aptソースインデックスを更新します

sudo apt-getアップデート

Docker CE(コミュニティエディション)の最新バージョンをインストールします

sudo apt-get で docker-ce をインストールします

Docker CEが正しくインストールされているか確認する

sudo docker run hello-world

インストールが成功したことを示す次のメッセージが表示されます。

コマンドを実行するたびに sudo を入力しなくても済むように、ユーザー権限を設定できます。コマンドを実行した後は、ログアウトして再度ログインする必要があることに注意してください。

sudo usermod -a -G docker $USER

2. 開始と停止

Dockerをインストールすると、デフォルトでDockerサービスが開始されます。Dockerサービスの開始と停止を手動で制御する必要がある場合は、次のコマンドを実行できます。

# Dockerを起動する
sudo サービス docker 開始

# Dockerを停止する
sudo サービス docker 停止

# Dockerを再起動
sudo サービス docker を再起動

3. Dockerイメージの操作

1. 画像を一覧表示する

dockerイメージls

2. イメージをプルする

特定のイメージを取得するには、次のようにプルコマンドを使用して、ウェアハウスからローカルにイメージをプルします。

docker イメージ プル ライブラリ/hello-world

Docker が公式に提供しているイメージファイルはすべて library グループに配置されているため、デフォルトのグループとなり省略可能です。したがって、上記のコマンドは次のように記述できます。

docker イメージのプル hello-world

3. 画像を削除する

docker image rm イメージ名またはイメージID

4. Dockerコンテナの操作

コンテナを作成する

docker run [オプション] イメージ名 [起動コンテナに渡されるコマンド]

一般的なオプションパラメータの説明:

  • -iはコンテナを「インタラクティブモード」で実行することを意味します
  • -t は、コンテナが起動後にコマンドラインに入ることを意味します。これら 2 つのパラメータを追加すると、コンテナの作成後にコンテナにログインできるようになります。つまり、疑似端末を割り当てます。
  • --name 作成したコンテナに名前を付ける
  • -v はディレクトリのマッピング関係を示します (前者はホストディレクトリ、後者はホストにマッピングされたディレクトリ、つまりホストディレクトリ: コンテナ内のディレクトリ)。複数の -v を使用して、複数のディレクトリまたはファイルをマッピングできます。注: ディレクトリ マッピングを実行し、ホスト マシンで変更を加えてから、それをコンテナーに共有するのが最適です。
  • -d 実行後に -d パラメータを追加すると、保護されたコンテナが作成され、バックグラウンドで実行されます (この方法では、コンテナの作成後に自動的にログインすることはありません。 -i -t パラメータのみを追加すると、作成後にコンテナに自動的に入ります)。
  • -p はポート マッピングを意味します。前者はホスト ポート、後者はコンテナー内のマッピング ポートです。複数の -p を使用して複数のポートをマップできます。
  • -e はコンテナの環境変数を設定します
  • --network=hostはホストのネットワーク環境をコンテナにマッピングすることを意味し、コンテナのネットワークはホストのネットワークと同じです。

インタラクティブコンテナ

たとえば、インタラクティブコンテナを作成し、myubuntuという名前を付けます。

docker run -it --name=myubuntu ubuntu /bin/bash

Ubuntu環境であるコンテナ内ではLinuxコマンドを自由に実行できます。exitコマンドを実行して終了するとコンテナも停止します。

保護されたコンテナ

デーモン コンテナを作成する: コンテナを長時間実行する必要がある場合は、デーモン コンテナを作成できます。コンテナ内から出るとコンテナは停止しません。

docker run -dit --name=myubuntu2 ubuntu

実行中のコンテナに入る

docker exec -it コンテナ名またはコンテナID 入力後に最初に実行されるコマンド

のように

docker exec -it myubuntu2 /bin/bash

コンテナを表示

# このマシンで実行中のコンテナを一覧表示する docker container ls

# 終了した docker コンテナを含む、このマシン上のすべてのコンテナを一覧表示します ls --all

コンテナの停止と起動

#すでに実行中のコンテナを停止する docker container stop コンテナ名またはコンテナID

# 停止したコンテナを起動する docker container start コンテナ名またはコンテナID

# 実行中のコンテナを強制終了する docker container kill コンテナ名またはコンテナID

コンテナの削除

docker コンテナ rm コンテナ名またはコンテナ ID

5. コンテナを画像として保存する

次のコマンドでコンテナをイメージとして保存できます。

docker commit コンテナ名 イメージ名

6. イメージのバックアップと移行

saveコマンドを使用して画像をファイルにパッケージ化し、他の人にコピーして使用することができます。

docker save -o 保存されたファイル名 イメージ名

のように

docker save -o ./ubuntu.tar ubuntu

画像ファイルを取得したら、load メソッドを使用してローカル コンピューターに画像を読み込むことができます。

docker load -i ./ubuntu.tar

Dockerを使用してFastDFSをインストールする

1. 画像を取得する

既存の FastDFS Docker イメージを使用して FastDFS を実行できます。

画像をダウンロードするには

docker イメージのプル delron/fastdfs

イメージをロードしたら、FastDFS のトラッカーとストレージの実行を開始できます。

2. トラッカーを実行する

トラッカーサービスを開始するには、次のコマンドを実行します。

docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs トラッカー

fastDFS トラッカーの実行ディレクトリをローカルの /var/fdfs/tracker ディレクトリにマップします。

トラッカーが実行中かどうかを確認するには、次のコマンドを実行します。

docker コンテナ ls

トラッカーサービスを停止したい場合は、次のコマンドを実行してください。

docker コンテナ停止トラッカー

停止後、トラッカーを再実行し、次のコマンドを実行します。

docker コンテナ スタート トラッカー

3. ストレージを実行する

ストレージサービスを開始するには、次のコマンドを実行します。

docker run -dti --network=host --name storage -e TRACKER_SERVER=10.211.55.5:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs ストレージ
  • TRACKER_SERVER=ローカル IP アドレス: 22122。ローカル IP アドレスに 127.0.0.1 を使用しないでください。
  • fastDFSストレージの実行ディレクトリをローカルの/var/fdfs/storageディレクトリにマッピングします。

ストレージが稼働しているかどうかを確認するには、次のコマンドを実行します。

docker コンテナ ls

ストレージサービスを停止したい場合は、次のコマンドを実行します。

docker コンテナ ストレージの停止

停止後、ストレージを再実行し、次のコマンドを実行します。

docker コンテナ ストレージの開始

注: 操作を再実行できない場合は、/var/fdfs/storage/data ディレクトリ内の fdfs_storaged.pid ファイルを削除し、ストレージを再実行してください。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • DockerにFastDFSをインストールする方法
  • Docker で FastDFS ファイル システムを構築する (マルチイメージ チュートリアル)
  • Docker で FastDFS をデプロイする方法
  • Docker に fastdfs イメージをインストールする際の注意事項

<<:  MySQL フルテキスト検索の中国語ソリューションとサンプルコード

>>:  Vue 3 カスタムディレクティブ開発の概要

推薦する

MySQL トリガーの使用方法と利点と欠点の紹介

目次序文1. トリガーの概要2. トリガーの作成2.1 トリガー構文の作成2.2 コード例3. トリ...

MYSQL ロック解除とロックテーブルの紹介

MySQL ロックの概要他のデータベースと比較すると、MySQL のロック メカニズムは比較的単純で...

Dockerディスク容量不足の問題を解決する

Docker が配置されているサーバーをしばらく稼働させたところ、サーバーのディスク ディレクトリの...

mySQLキーワードの実行優先度の説明

以下のように表示されます。表から条件フィールドでグループ化仮想テーブルとフィールドを作成し、フィール...

Ubuntu で起動時に自動的に起動するシェル スクリプトを作成する (推奨)

スクリプトを書く目的は、さまざまなサービスを手動で起動しなくて済むようにすることです(怠惰のためでも...

mysql5.7.17 zip の解凍とインストールの詳細な手順

1. ダウンロードアドレスhttps://dev.mysql.com/downloads/mysql...

MySQL 5.7 でデータベースのデータ保存場所を変更する方法

MySQL データベースに保存されるデータが徐々に増加すると、元のストレージ領域がいっぱいになり、M...

良いデザインについて

<br />「良いデザインとは何か」と答える 1 万人に対して、少なくとも 1 万 1 ...

MySQLのロックについて理解しておくべきこと

1. はじめにMySQL ロックは、その範囲に応じて、グローバル ロック、テーブル ロック、行ロック...

LinuxカーネルとSVNバージョン間の競合の解決策

現象システムは Linux システムカーネルを正常にコンパイルできましたが、SVN をインストールし...

Vueデータプロキシの詳細な説明

目次1. これからお話しするのは、フロントエンド担当者がvue-cliで完了できるソリューション、デ...

暗号化における https の Apache 展開の概要

目次目的実験環境実験原理実験手順1. 独立したCAを生成する2. サーバーの秘密鍵と署名要求ファイル...

JavaScript の高度なクロージャの説明

目次1. 閉鎖の概念追加の知識ポイント: 2. 閉鎖の役割: 3. 閉鎖例3.1 liをクリックする...

MySQLのUPDATE文の落とし穴を記録する

背景最近、オンライン操作中に DML ステートメントを実行しました。これは絶対確実だと思っていました...

Windows サーバー ポートを開きます (例としてポート 8080 を使用します)

ポートとは何ですか?私たちが通常参照するポートは、物理的な意味でのポートではなく、具体的には TCP...