Dockerの基本的な手順

Dockerの基本的な手順

最近の作業では、MySQL と MongoDB の運用と保守に関するコンテンツが比較的少ないです。私の主な仕事は、docker や k8s 関連のコンテンツに触れることが多いので、これについて書いてみようと思います。

前回の記事では、Docker に MySQL をデプロイするプロセスを紹介しました。簡単に確認できるリンクを以下に示します。

DockerにMySQLインスタンスをデプロイする

上記の記事では、Dockerとは何か、Dockerと仮想マシンの違い、インストール方法、基本的な使い方について説明しました。次に、その他の知識の側面について見ていきましょう。

基本的な指示

1. 現在のマシンのコンテナステータスを確認する

通常、次のように docker ps コマンドを使用して、現在のマシンで実行されているコンテナを表示できます。

[root@VM-16-13-centos ~]# docker ps
 コンテナID イメージ コマンド 作成ステータス ポート名
7a57ee5286e8 kubeguide/tomcat-app:v1 "catalina.sh run" 8 日前 8 日前 k8s_myweb.7c32387a_myweb-8gmc1_default_b44279ec-48b9-11eb-86e4-5254002dbd85_ec48ef90
b2ad9bea8d0d kubeguide/tomcat-app:v1 "catalina.sh run" 8 日前 8 日前 k8s_myweb.7c32387a_myweb-60r22_default_b4426b29-48b9-11eb-86e4-5254002dbd85_28dd55c9
4f8f6ea37578 registry.access.redhat.com/rhel7/pod-infrastructure:latest "/usr/bin/pod" 8 日前 8 日前 k8s_POD.24f70ba9_myweb-8gmc1_default_b44279ec-48b9-11eb-86e4-5254002dbd85_2d2aa42e
3d198ee60f2a registry.access.redhat.com/rhel7/pod-infrastructure:latest "/usr/bin/pod" 8 日前 8 日前 k8s_POD.24f70ba9_myweb-60r22_default_b4426b29-48b9-11eb-86e4-5254002dbd85_416acda7
94332658780b busybox "sh -c 'tail -f /l..." 6 週間前 6 週間前 k8s_busybox.5057389f_volume-pod_default_13702698-2b17-11eb-86e4-5254002dbd85_a553d58b
f11f11999c42 tomcat "catalina.sh run" 6 週間前 6 週間前 k8s_tomcat.aeb855f2_volume-pod_default_13702698-2b17-11eb-86e4-5254002dbd85_aa729e3d
d2ec1526079f kubeguide/redis-master "redis-server /etc..." 6 週間前 6 週間前 k8s_redis.deb7361f_redis-php_default_f70a055b-2b18-11eb-86e4-5254002dbd85_23135019
5b83d7645b1f registry.access.redhat.com/rhel7/pod-infrastructure:latest "/usr/bin/pod" 6 週間前 6 週間前 k8s_POD.3fe22e5d_redis-php_default_f70a055b-2b18-11eb-86e4-5254002dbd85_c418f108
3b7634ee3eff registry.access.redhat.com/rhel7/pod-infrastructure:latest "/usr/bin/pod" 6 週間前 6 週間前 k8s_POD.24f70ba9_volume-pod_default_13702698-2b17-11eb-86e4-5254002dbd85_0610ed58
4784586d01e0 mysql "docker-entrypoint..." 6 週間前 6 週間前 k8s_mysql.16d54d16_mysql-pd7jr_default_0032bce0-2b0f-11eb-98ad-5254002dbd85_d775f414
c8acc287dc06 registry.access.redhat.com/rhel7/pod-infrastructure:latest "/usr/bin/pod" 6 週間前 6 週間前 k8s_POD.1d520ba5_mysql-pd7jr_default_0032bce0-2b0f-11eb-98ad-5254002dbd85_94c9c30a

その他の注意事項:

-a パラメータは、実行中のコンテナと停止中のコンテナを含むすべてのコンテナを表示するために使用されます。 -a が追加されていない場合は、実行中のコンテナのみが表示されます。

-l パラメータは、実行中のコンテナと停止したコンテナを含む、最後に実行されたコンテナを一覧表示します。

-q パラメータ、コンテナ ID のみを表示します

-s パラメータ、サイズ、ファイルの合計サイズを表示します

2. イメージをダウンロードまたは取得します。

次のように docker pull または docker run を使用できます。

[root@VM-16-13-centos ~]# docker run -i -t ubuntu /bin/bash
イメージ 'ubuntu:latest' がローカルに見つかりません
リポジトリ docker.io/library/ubuntu をプルしようとしています...
 最新: docker.io/library/ubuntu からプル
da7391352a9b: ダウンロード中 [=> ] 588.8 kB/28.56 MB
14428a6d4bcd: ダウンロードが完了しました
 2c2d948710f2: ダウンロードが完了しました

 [root@VM-16-13-centos ~]# docker pull mysql
デフォルトタグの使用: 最新
リポジトリ docker.io/library/mysql をプルしようとしています...

docker run コマンドを使用してイメージをプルすると、Docker は自動的にランダムな名前を付けます。ランダムに名前が付けられたコンテナを使用しない場合は、--name パラメータを使用して名前を指定できます。イメージのバージョン番号を指定しないと、最新バージョンのイメージが自動的にプルされます。

docker runコマンドは、-dパラメータとともに使用されることが多い。これは、保護されたコンテナをバックグラウンドで実行することを意味する。

--restart=always パラメータを使用してコンテナを再起動することもできます。もちろん、デフォルトではコンテナは再起動されません。

3. コンテナの起動、停止、再起動

最後の部分はコンテナ ID またはコンテナ名であることに注意してください。

docker start コンテナID/名前

docker stop コンテナID/名前

docker コンテナID/名前を再起動します

4. コンテナ内のプロセスを表示する

docker top コマンドを使用すると、コンテナ内のすべてのプロセスを表示できます。

[root@VM-16-13-centos ~]# docker top k8s_mysql.16d54d16_mysql-pd7jr_default_0032bce0-2b0f-11eb-98ad-5254002dbd85_d775f414
        UID PID PPID C STIME TTY 時間 コマンド
ルート 5059 5044 0 2020 pts/5 00:00:00 /bin/bash
ルート 5152 5059 0 2020 pts/5 00:00:00 mysql -uroot -px xxxx
ルート 13644 24879 0 2020 pts/4 00:00:00 mysql -uroot -px xxxx
polkitd 18853 18837 0 2020 ? 01:31:43 mysqld
ルート 24153 24137 0 2020 pts/1 00:00:00 /bin/bash
ルート 24376 24153 0 2020 pts/1 00:00:00 mysql -uroot -px xxxx
ルート 24879 24864 0 2020 pts/4 00:00:00 /bin/bash
ルート 25833 25817 0 23:45 pts/8 00:00:00 /bin/bash
ルート 28493 28477 0 2020 pts/3 00:00:00 /bin/bash
ルート 28609 28493 0 2020 pts/3 00:00:00 mysql -uroot -px xxxx
ルート 29484 29468 0 2020 pts/2 00:00:00 /bin/bash
ルート 29601 29484 0 2020 pts/2 00:00:00 mysql -uroot -px xxxx

5. コンテナ内でコマンドを実行する

たとえば、コンテナIDが4784586d01e0のコンテナ内にフォルダを作成し、データフォルダを作成します。

[root@VM-16-13-centos ~]# docker exec -d 4784586d01e0 mkdir -p /data
[root@VM-16-13-centos ~]# docker exec -it 4784586d01e0 /bin/bash
ルート@mysql-pd7jr:/# ls -l
合計 76
drwxr-xr-x 2 ルート ルート 4096 11月17日 00:00 bin
drwxr-xr-x 2 ルート ルート 4096 9月19日 21:39 ブート
drwxr-xr-x 2 ルート ルート 4096 1月5日 15:51 データ
drwxr-xr-x 5 ルート ルート 360 11月 20 09:16 dev
drwxr-xr-x 2 ルート ルート 4096 11月18日 08:16 docker-entrypoint-initdb.d
.....

6. コンテナを削除する

docker rm containID/名前

コンテナを削除する前に、まずコンテナを停止する必要があることに注意してください。そうしないと、削除時にエラーが発生します。

docker rm `docker -a -q`

このコマンドはすべてのコンテナを削除できます。

上記は基本的な docker 命令の詳細です。基本的な docker 命令の詳細については、123WORDPRESS.COM の他の関連記事をご覧ください。

以下もご興味があるかもしれません:
  • カスタム Docker イメージを作成するための Dockerfile の詳細な説明と CMD と ENTRYPOINT 命令の比較
  • Dockerコンテナの操作手順の概要と詳細説明
  • Dockerfile における ENV 命令の具体的な使用法の詳細な説明
  • Dockerfileの指示と基本構造の説明
  • Dockerでイメージを作成するためのDockerfile命令の詳細な説明
  • Dockerfile 命令 ADD と COPY の紹介
  • Dockerfile命令VOLUMEの簡単な紹介
  • Docker 指示の収集と整理 (コレクション)
  • Dockerfile の手順の説明

<<:  表示しているページのスナップショットを Baidu が保存できないように設定する方法

>>:  ユーザーエクスペリエンスの概要

推薦する

ES6スプレッド演算子の使用例

目次スプレッド演算子とレスト演算子とは何ですか?配列スプレッド演算子残り演算子(コレクション関数)ス...

ホスト上のDockerコンテナ内でシェルまたはプログラムを実行する

Docker コンテナに繰り返し入って操作することを避けるために、コンテナ内の一連の命令をホストマシ...

SQL ROW_NUMBER() および OVER() メソッドのケーススタディ

構文フォーマット: row_number() over(partition by grouping ...

VueのRender関数

目次1. ノード、ツリー、仮想DOM 2. 仮想DOM 2.1 データオブジェクトの詳細2.2 制約...

jQueryはクッキーを操作する

コードをコピーコードは次のとおりです。 jQuery.cookie = 関数(名前、値、オプション)...

Linux 上の MariaDB は root ユーザーで起動します (推奨)

最近、セキュリティ製品をテストする必要があったため、mariadb の起動ユーザーを root に調...

geo モジュールを使用して Nginx でホワイトリストを設定する例

元の構成: http { ...... limit_conn_zone $binary_remote...

Vueはel-tree遅延読み込みを使用して、追加、削除、変更、クエリ機能を実装します。

Vue のツリー表示については、プロジェクトが使用されています: エフェクト ダイアグラムがツリー...

Linux で固定 IP を設定する方法 (テスト済みで効果的)

まず、仮想マシンを開きます xshell5 を開いて仮想マシンに接続します (より便利です。Linu...

携帯電話番号が合法かどうかを判断するWeChatアプレットのサンプルコード

目次シナリオ効果コード要約するシナリオ登録ページに携帯電話番号を入力し、登録インターフェイスを要求す...

MySQL パフォーマンス最適化のヒント

MySQL パフォーマンスの最適化MySQL はインターネット企業で広く使用されており、MySQL ...

MySQLチュートリアルではストアドプロシージャを徹底的に理解します

目次1. ストアドプロシージャに関連する概念2. ストアドプロシージャの使用1) ストアドプロシージ...

JDBC が MySQL に接続して中国語を処理するときに文字化けする問題の解決方法の詳細説明

JDBC が MySQL に接続して中国語を処理するときに文字化けする問題の解決方法の詳細説明最近、...

Dockerでデータディレクトリを移行する方法

目次ディスク使用量の表示ディスク クリーンアップ (軽々しく使用しないでください)データの移行ディス...

JavaScript で外部変数にアクセスするサブ関数の 3 つのソリューション

序文Web ページを作成するときに、次のような状況に遭遇することはよくあります。 <本文>...