Linux の Docker コンテナで bash を終了する 2 つの方法

Linux の Docker コンテナで bash を終了する 2 つの方法

bash を終了する場合は、次の 2 つのオプションがあります。

最初のもの:

Ctrl + d を押すとコンテナを終了して停止します。

2番目のタイプ:

Ctrl + p + q を押すと、コンテナを終了してバックグラウンドで実行します。

追加知識: Dockerは複数のサービスを同時に起動します

前回の Docker の記事では、コンテナを起動したときにバックグラウンド サービスは 1 つだけ起動していました。今回は、Supervisor を使って複数のサービスを起動する方法について説明します。

1. まずディレクトリを作成し、そのディレクトリ内にDockerfileを作成します。ファイルの内容は次のとおりです。

Centosから:centos6maintainer fanbin kong "[email protected]" run rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noard.rpmrun pam yes/usepam no/g '/etc/ssh/sshd_config run adminrun echo "admin:admin" | All =(all)All "/etc/ets ssh -keygen -t dsa -f/etc/ets/ssh rsa_keyrun mkdir/var/run/sshdrun/etc/init.d/mysqld start && \ mysql -e "すべての特権を付与 *。 PLETMEIN -E "DATABASES;" RUN MKDIR -P/VAR/LOG/SUPRUPISORCOPY SUPRUPISORD.CONF /TC/SUPERVISORD.CONFEXPOSE 22 3306CMD ["/usr/bin/superpisord"]]

2. Dockerfile が配置されているディレクトリに supervisord.conf ファイルを作成します。内容は次のとおりです。

[supervisord]nodaemon=true[program:sshd]command=/usr/sbin/sshd -D[program:mysqld]command=/usr/bin/mysqld_safe

3. Dockerfile が配置されているディレクトリでビルド コマンドを実行して、イメージ ファイルを生成します。ここでは、イメージ ファイル名として mysql_server を使用します。

sudo docker build -t myserver を実行します。

4. コンテナを起動する

4.1 まず次のコマンドを使用してコンテナを起動します

sudo docker run --name=myserver -d -P myserver

4.2 コンテナを起動したら、「sudo docker ps」で確認することができます。このとき、PORTS列の内容が

「0.0.0.0:49171->22/tcp、0.0.0.0:49172->3306/tcp」

コンテナのポート 22 と 3306 は、ホスト マシンのポート 49171 と 49172 にマップされます。

4.3 これで、次のコマンドでsshおよびmysqlサービスにアクセスできるようになります。

ssh admin@<ホストマシン> -p <ホストマシンのポート>mysql -h <ホストマシン> -u root -pletmein -P 49172

4.4 もちろん、「sudo docker inspect myserver | grep IPAddress」を使用してコンテナのIPアドレスを表示し、次のコマンドでsshおよびmysqlサービスにアクセスすることもできます。

ssh admin@<コンテナマシンのIP> mysql -h <コンテナマシンのIP> -u root -pletmein

Linux の Docker コンテナから bash を終了する上記の 2 つの方法は、すべて編集者が共有した内容です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • docker実行時に異なるポートを占有する2つのポートを起動する問題を解決する
  • Dockerはプロセス操作を管理するためにSupervisorを使用する
  • dockerでsshd操作を有効にする

<<:  ハイパーリンクの表示と開き方

>>:  MySQLデータベースのロック機構の分析

推薦する

Centos7.3 Nginx をインストールして展開し、https を設定する方法

設置環境1. gccのインストールnginxをインストールするには、まず公式サイトからダウンロードし...

VScode設定のリモートデバッグLinuxプログラムの問題を解決する

VScode リモートデバッグ Linux プログラムの問題について見てみましょう。具体的な内容は以...

MySQL で大量のデータ (数千万) を素早く削除するためのいくつかの実用的なソリューションの詳細な説明

著者は最近、仕事でパフォーマンスのボトルネックの問題に遭遇しました。MySQL テーブルには毎日約 ...

Zabbix で複数の JVM プロセスを監視する方法

1. シナリオの説明:私たちの環境ではマイクロサービスを使用しています。各プログラムには個別のプロセ...

Vue3を使用してjsで呼び出せるコンポーネントを実装する

目次序文1. 従来のVueコンポーネント1. メインコンポーネントコード: 2. 使用方法3. 成果...

HTML の基礎: HTML コンテンツの詳細

まずは本体から始めましょう:ウェブページを閲覧するとき、最初に目に留まるのは通常、ページの背景です。...

CSSはメッセージパネルをスライドするWebコンポーネント機能を実装します

みなさんこんにちは。私と同じように混乱している方はいらっしゃいませんか。CSS は簡単に始められます...

Reactは動的ポップアップウィンドウコンポーネントを実装します

UI コンポーネントを作成するときに、アニメーションを考慮しなければ、アニメーションを実現するのは非...

React Contextの理解と応用についてお話ししましょう

目次序文React Context の初見コンテキストの使い方コンテキストを直接取得できるいくつかの...

DockerとDocker-Composeの使用例

Docker は、アプリケーションをより速く配信するのに役立つオープンソースのコンテナ エンジンです...

Linux で MySQL のスケジュールバックアップを実装する方法

実際のプロジェクトでは、緊急事態を防ぐためにデータベースを頻繁にバックアップする必要があります。しば...

MySQLのあいまいクエリインデックスの失敗の問題を解決するいくつかの方法

% ワイルドカードを使用すると、インデックス失敗の問題が発生することがよくあります。ここでは、lik...

MySQL 5.7.21 解凍版インストール Navicat データベース操作ツールインストール

MySQL解凍版とNavicatデータベース操作ツールのインストールは、以下のとおりです。 1. M...

追加、削除、変更、クエリを実行するための JS 操作オブジェクト配列のサンプルコード

1. はじめに最近、私は友人が JSON 配列を追加、削除、変更するための簡単なページを作成するのを...

Vue が学ぶべき知識ポイント: forEach() の使用

序文フロントエンド開発では、目的のコンテンツを取得するためにループをトラバースする必要がある状況に頻...