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 が保存できないように設定する方法

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

推薦する

VMware ワークステーション 12 に Ubuntu 14.04 (64 ビット) をインストール

1. インストール環境コンピュータモデル: Lenovo Y471a (i5) ノートパソコンシステ...

Vueのウォッチリスナーの使い方を説明する記事

目次リスナーウォッチ形式リスナーを設定します。要約するリスナーウォッチ関数名は、リッスンする要素の名...

jQueryはシンプルなコメントエリアを実装します

この記事では、参考までに、簡単なコメントエリアを実装するためのjQueryの具体的なコードを紹介しま...

一意の注文番号を生成するためのMySQLの高同時実行方法

序文このブログ記事が公開された後、何人かの友人からSQL Serverバージョンがあるかどうか尋ねら...

ウェブページに埋め込まれた Flash と IE、FF、Maxthon の互換性の問題

いろいろ苦労した後、インターネットで検索したり、以前の会社のプロジェクトを探したり、他の人のプロジェ...

MySQL 結合バッファの原理

目次1. MySQL 結合バッファ2. JoinBufferCacheストレージスペースの割り当て3...

Docker を使用して nginx で tomcat クラスターを構築する方法 (画像とテキスト付き)

まず、Tomcatフォルダを作成します。Dockerの設定を容易にするために、ルートディレクトリに直...

CSS の ::before と ::after 疑似要素について知らないこと

CSS には、一般的には使用されない 2 つの疑似クラス、before と :after があります...

MySQL の group by と having の詳細な説明

GROUP BY 構文を使用すると、指定されたデータ列の各メンバーに従ってクエリ結果をグループ化して...

スケルトンスクリーン効果を実現する CSS

ネットワーク データを読み込むときは、ユーザー エクスペリエンスを向上させるために、通常は円形の読み...

JavaScript はチェックボックスの選択機能を実装します

この記事の例では、すべてのチェックボックスの選択を実現するためのJavaScriptの具体的なコード...

Tomcat でサーブレット URL パターンを構成する際の問題の詳細な説明

tomcat の web.xml を構成する場合、サーブレットは比較的重要な問題です。ここでは、サー...

Nginx リバース プロキシを使用してクロスドメイン問題を解決する方法の詳細な説明

質問前回のクロスドメイン リソース共有に関する記事では、ドメイン間で Cookie を送信する場合、...

Ubuntu 16.04 mysql5.7.17 リモートポート 3306 を開く

MySQLへのリモートアクセスを有効にするデフォルトでは、MySQL ユーザーにはリモート アクセス...

Web 上の要素を非表示にする方法とその利点と欠点

ソースコードの例: https://codepen.io/shadeed/pen/03caf6b36...