Dockerの一般的なコマンドとヒントのまとめ

Dockerの一般的なコマンドとヒントのまとめ

インストールスクリプト

Ubuntu / CentOS

Debian のインストールに問題があるようで、インストール ソースの問題を解決する必要があります。

カール -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun / AzureChinaCloud

AWSやGCPなど海外のクラウドサーバーベンダーを利用している場合は、--mirrorを追加する必要はありません。

Centosの実行が終了した後も、手動でsudo systemctl start docker.serviceを実行する必要があります。そうしないと、dockerが起動していないなどのエラーが表示されます。

ログ関連

文字列のGrep

正しい方法: docker logs nginx 2>&1 | grep "127."

たとえば、Jupyter Notebook のトークンを表示するには、 docker logs notebook 2>&1 | grep "token"

サポートされているその他のパラメータ

-f : tail -f コマンドと同様

--since: 2013-01-02T13:23:37 などの特定のタイムスタンプから開始します。相対時間もサポートされています (例: 42m)。

--until : 上記と同様ですが、逆になります。

-t, --timestamp : タイムスタンプを表示

--tail N (デフォルトはすべて) : データの最後の数行を表示する

マウント手法<br /> たとえば、Grafana などでは、Docker イメージに組み込まれたファイルがいくつかあります。対応するディレクトリを直接マウントし、ホストディレクトリが空の場合、docker内部

ディレクトリは上書きされます。この状況にどう対処すればいいのでしょうか?

単純で大雑把な方法 1: (アイデアのみ)

一度実行し、docker cpコマンドを使用してコピーします。

次に、Docker コンテナを削除し、ファイルを対応するディレクトリにコピーしてマウントします。

よりエレガントな方法 2:

ClickHouseの起動を例に挙げましょう

# ステップ 1.1: docker ボリュームを作成する (目的: CH サーバーの構成を公開する)
docker ボリューム作成 --driver ローカル \
--opt タイプ=なし \
--opt デバイス = /home/centos/workspace/clickhouse/configs \
--opt o=バインド\
ch-サーバー構成

# ステップ 1.2: ボリュームを作成し、データベースデータをマウントします docker volume create --driver local \
--opt タイプ=なし \
--opt デバイス = /home/centos/workspace/clickhouse/data \
--opt o=バインド\
ch-サーバーデータ

# ステップ 2: 起動 (注意: 保存されているデータが多い場合、2 回目の起動では初期化に時間がかかります。初期化が完了する前に接続しようとすると失敗します。)
sudo docker run -d --name mkt-ch-server \
-v ch-server-configs:/etc/clickhouse-server \
-v ch-server-data:/var/lib/clickhouse \
--常に再起動\
-p 9000:9000 -p 8123:8123 \
--ulimit nofile=262144:262144 yandex/clickhouse-server

この方法では、Docker イメージに付属する構成ファイルは、初めてマウントされたときにクリアされません。

スケジュールされたタスク

たとえば、MySQL ではデータのバックアップを定期的にエクスポートする必要があります。この操作は、ホスト マシン上で crond を使用して実行するのが最適です。

0 1 * * * docker exec mysqldump xxxx

一般的な Docker イメージとそのインストール コマンド

マイグレーション

インストール

docker run --name some-mysql --restart always\
-v /my/own/datadir:/var/lib/mysql\
-e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:タグ

データをダンプする

方法1: ローカルにmysql dockerコンテナが既にある

次のコマンドはdocker内のmysql用ですが、パラメータdump remote mysqlを直接指定することもできます。

docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /path-to-data/all-databases.sql

方法2: ローカルにmysql dockerコンテナがない

# 使用後は削除し、コマンドラインプロンプトにパスワードを入力します docker run -i --rm mysql:5.7 mysqldump --all-databases\
-h 172.17.0.1 -uroot -p | gzip -9 > /home/centos/workspace/mysql-data/backup.sql.gz

エディターの都合により、上記>は正しく表示されません

データの復元

上記のダンプ方法を参照しますが、コマンドラインツールはmysqlに変更されます

Python プロキシ

少し這ってみる必要があるでしょう。クラウド サーバーの IP を最大限に活用して、クローラー プロキシとして機能します。クローラー プロキシを構築する最も簡単な方法は現在次のとおりです。

docker run --name py-proxy -d --restart always -p 8899:8899 abhinavsingh/proxy.py

知らせ:

  1. 現時点では、この Docker イメージの Python スクリプトはまだ比較的古く、Basic 認証をサポートしていません。Basic 認証が必要な場合は、Python ファイルを自分で更新し、Docker ビルドを再構築する必要があります。 Github アドレス: https://github.com/abhinavsingh/proxy.py
  2. 実際の運用では、使いすぎると自動的に接続が確立できない状況が発生するようです。対象のWebサイトに問題がある可能性もあります。
  3. この物はブラウザ SwitchSharp のプロキシとしても使えますが、https + 基本認証を追加することを推奨します。具体的な操作については公式ドキュメントを参照してください。

ジュピターノートブック

しばらく使ってみて、Tensorflow イメージに付属している Notebook の方がシンプルだと感じました。 ホストディレクトリをマウントするときに、奇妙な権限の問題が起こらないためです。 bash スクリプトは次のとおりです。

sudo docker run --name ノートブック -d --restart 常に \
 -p 127.0.0.1:8888:8888 \
 -v /ワークスペースへのパス/notebooks:/tf \
 テンソルフロー/テンソルフロー:最新-py3-jupyter

Apache Sparkなどをリンクする必要がある場合は、次のスクリプトを参照してください

sudo docker run --name pyspark-notebook -d \
 --net ホスト --pid ホスト -e TINI_SUBREAPER=true -p 8888:8888 \
 -v /ワークスペースへのパス/notebooks:/tf \
 テンソルフロー/テンソルフロー:最新-py3-jupyter

グラファナ

ID=$(id -u)
 
docker 実行 \
 -d --常に再起動する\
 -p 3000:3000 \
 --name=グラファナ \ 
 --user $ID -v /path-to-data/grafana-data:/var/lib/grafana \
 -e "GF_INSTALL_PLUGINS=grafana-clock-panel、grafana-simple-json-datasource" \
 -e "GF_SECURITY_ADMIN_PASSWORD=aaabbbccc" \
 グラファナ/グラファナ

簡単に説明します:

  • –user $ID を設定する必要があります。そうしないと、Docker 内で権限の問題が発生します。
  • GF_INSTALL_PLUGINS: 組み込みでないプラグインをインストールする
  • GF_SECURITY_ADMIN_PASSWORD: アカウント: admin / aaabbbccc

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • Docker共通コマンドの詳しい解説 Study03
  • 一般的な docker コマンドの概要 (推奨)
  • Docker共通コマンド操作方法
  • 一般的な Docker コマンドの概要: インストール、ミラーリング、基本的なコンテナ操作
  • docker タイムゾーンの変更と一般的な docker コマンドの詳細な説明
  • 一般的なDockerコマンドの概要

<<:  Vue は better-scroll を使用して水平スクロール方法の例を実現します

>>:  Mysqlは実行中のトランザクションを照会し、ロックを待機する方法

推薦する

PC/Pad/Phoneデバイスに自動的に適応するCSSウェブページレスポンシブレイアウト

序文最近は、PC、iPad、携帯電話、スマートウォッチ、スマートテレビなど、さまざまなデバイスが存在...

nginx の場所に複数の Proxy_pass メソッドがある

1. まず、nginxの位置情報に関する関連知識を確認しましょう1) 位置マッチング手順: ~ #波...

MySQL 文字列連結関数 GROUP_CONCAT の詳細な説明

前回の記事では、クロステーブル更新について書きました。自分が書いた SQL を見たとき、自分がバカみ...

MySQLにおける時刻日付型と文字列型の選択について

目次1. DATETIMEとTIMESTAMPの使用1. 類似点2. 相違点3. 選択2. varc...

WeChatアプレットはウォーターフォールフローのページングスクロール読み込みを実装します

この記事では、WeChatアプレットのウォーターフォールフローページングスクロールロードを実装するた...

ウェブレッスンプラン、初心者向けレッスンプラン

指導トピックウェブページ適用グレード高校2年生授業時間1 クラス教科書分析焦点: 静的および動的ウェ...

HTMLテーブルで、各セルに異なる色と幅を設定します

設定が有効にならない場合が多いため、幅や高さなどをテーブル内で直接設定しないことをお勧めします。スタ...

リソースアップロード機能を実現するための SpringBoot+nginx の詳細な例

最近、画像、ビデオ、CSS/JS などの静的リソースを配置するために nginx を使用する方法を学...

Nginxを使用してストリーミングメディアサーバーを構築し、ライブブロードキャスト機能を実現する

前面に書かれた近年、ライブストリーミング業界は非常に人気が高まっています。伝統的な業界でのライブスト...

Dockerはrabbitmqのサンプルコードをインストールして実行します

イメージをプルします: [mall@VM_0_7_centos ~]$ sudo docker pu...

LINUX ポートが占有されているかどうかを確認します

ポートが占有されているかどうかは、これまで一度もわかりませんでした。多くの人に尋ねて、ようやくわかり...

Docker 可視化グラフィックツール portainer の詳細な説明

目次1. ポーテナーの紹介2. Portainer アーキテクチャの概要3. Portainerのイ...

MySQL 5.7.18 のインストール中に MySQL サービスの起動に失敗する問題の解決策

MySQL は非常に強力なリレーショナル データベースです。しかし、初心者の中には、インストールや設...

ファイル操作のためのLinuxシステムコール

目次1. ファイルを開くパラメータの紹介2. ファイルの読み取り3. ファイルを書き込む4. 閉じる...

CSS3のvar()を使用して実行時にscss変数の値を変更する詳細な説明

var() の紹介と使用法詳細 (MDN) IEは無効ですが、他の主流のブラウザは有効ですvar()...