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は実行中のトランザクションを照会し、ロックを待機する方法

推薦する

LinuxカーネルマクロContainer_Ofの詳細な説明

目次1. 構造体はメモリにどのように保存されますか? 2. container_ofマクロ3. 型4...

Ubuntu の MySQL のパラメータ ファイル my.cnf の詳細な分析

序文MySQL に関する私の理解に基づくと、パフォーマンスの最適化作業やマスター スレーブ レプリケ...

Vueプロジェクトはログインと登録の効果を実現します

この記事の例では、ログインと登録の効果を実現するためのvueプロジェクトの具体的なコードを共有してい...

MySQL 5.7.18 Green Edition のダウンロードとインストールのチュートリアル

この記事では、MySQL 5.7.18のグリーンバージョンをダウンロードしてインストールする詳細な手...

Centos7 ベースの Varnish キャッシュ プロキシ サーバーを展開する

1. ワニスの概要1. ワニスの紹介Varnish は、新しいソフトウェア アーキテクチャを使用し、...

MySQLで重複データを削除する詳細な例

MySQLで重複データを削除する詳細な例重複レコードには 2 つの意味があります。1 つは完全に重複...

mysql8.0.19 winx64バージョンのインストール問題を解決する

MySQL は、スウェーデンの会社 MySQL AB によって開発されたオープンソースの小規模なリレ...

MySQL binlog を使用して誤って削除されたデータベースを復元する方法

目次1 現在のデータベースの内容を表示し、データベースをバックアップする2 bin_log関数を有効...

HTML チュートリアル: 順序なしリスト

<br />原文: http://andymao.com/andy/post/102.h...

MySQL 学習ノート ヘルプ ドキュメント

システムヘルプを表示help contents mysql> ヘルプコンテンツ; ヘルプ カテ...

表面的なウェブデザイン

<br />私はいつもYahooのウェブデザインが素晴らしいと信じてきました。しかし、こ...

ウェブデザイナーが持つべき資質と能力

Web デザインは、インターネットの出現後に誕生した新興の周辺産業です。 Web ページは店頭のよう...

Linux システムで Java 環境変数を設定する方法

Java環境変数を設定するここで、環境変数は etc/profile に設定され、つまり、すべてのユ...

マルチコア CPU を使用して Linux コマンドを高速化する方法 (GNU Parallel)

非常に大量のデータ(数百 GB)を計算する必要があったことはありますか?または、その内部を検索したり...

MySQL外部キーの基本的な機能と使用方法の詳細な説明

この記事では、例を使用して、MySQL 外部キーの基本的な機能と使用方法を説明します。ご参考までに、...