10分で自分のイメージを構築する方法を学ぶ

10分で自分のイメージを構築する方法を学ぶ

Docker イメージを作成するには、一般的に 2 つの方法があります。

  1. ハブウェアハウスの既存の環境を使用して、イメージ作成を完了するために使用するソフトウェア環境をインストールします。
  2. Dockerfileを通じてイメージの作成を完了する

変換のために既存のイメージを引き出す

このセクションでは、ppocr イメージをベース イメージとしてプルして変更するプロセスを紹介します。

ステップ1: PPOCRコンテナを実行する

まず、PPOCR コンテナを実行します。次のコマンドを使用できます。

 docker run -itd --name ppocr -p 9000:9000 duolabmeng666/paddlehub_ppocr:1.0 /bin/bash -c "sh /PaddleOCR/start.sh"

これにより、ポート 9000 で機能する PPOCR コンテナーがローカルで起動されます。

ステップ2: ファイルをコンテナに移動する

docker cp コマンドを使用して、必要なファイルをコンテナに移動します。

 docker cp /data/keyword_api.py ppocr:/home

これにより、keyword_api.py ファイルが実行中の PPOCR コンテナの /home ディレクトリにコピーされます。

ステップ3: 個人用画像ホスティングインスタンスを作成する

Dockerhub のネットワーク環境は良くないので、代わりに Alibaba Cloud のイメージスペースを使用することができます。コンテナ イメージ サービス (aliyun.com) で独自の個人インスタンスを作成し、対応するイメージ リポジトリを作成できます。

ステップ4: コンテナイメージを送信する

次に、次のコマンドを使用して、サーバー上の Docker レジストリにログインします。

 docker login --username=xxxxxx registry.cn-shanghai.aliyuncs.com

次にコンテナに入り、対応する依存関係をインストールします

docker exec -it container_id /bin/bash

変更後、次のコマンドを使用して実行中のコンテナをイメージとして保存します。

 docker commit [ImageId] my_saved_image

ステップ5: イメージにタグを付けてプッシュする

次のコマンドを使用して、コンテナイメージにタグを付け、Alibaba Cloud Docker Registry にプッシュします。

 docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/your_repository/your_image_name:your_image_version docker push registry.cn-shanghai.aliyuncs.com/your_repository/your_image_name:your_image_version

your_repository、your_image_name、your_image_version を実際のリポジトリ、イメージ名、バージョン番号に置き換えてください。使いたいときは容器を引き抜くだけです。

イメージをビルドするためのDockerfileファイル

既存のイメージからコンテナを送信するのではなく、カスタム Docker イメージを構築する場合は、Dockerfile を使用できます。サンプル Dockerfile のビルド手順は次のとおりです。

ステップ1: Dockerfileを書く Dockerfileというテキストファイルを作成する

FROM registry.cn-shanghai.aliyuncs.com/koudaimao/bigdata_api:v1设置端口EXPOSE 8099切换工作目录到/home WORKDIR /home安装系统工具和cron RUN apt-get update && apt-get install -y cron设置环境变量ENV PATH="/usr/local/python3.7.0/bin:/usr/local/python3.7.0/include:/home/cmake-3.16.0-Linux-x86_64/bin:/usr/local/gcc-8.2/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/root/gopath/bin" CUDA_VERSION=10.2.89 CUDA_PKG_VERSION=10-2=10.2.89-1 LD_LIBRARY_PATH="/usr/local/python3.7.0/lib:/usr/local/nvidia/lib:/usr/local/nvidia/lib64" NVIDIA_VISIBLE_DEVICES=all NVIDIA_DRIVER_CAPABILITIES=compute,utility NVIDIA_REQUIRE_CUDA="cuda>=10.2 brand=tesla,driver>=396,driver<397 brand=tesla,driver>=410,driver<411 brand=tesla,driver>=418,driver<419 brand=tesla,driver>=440,driver<441" NCCL_VERSION=2.8.3 LIBRARY_PATH=/usr/local/cuda/lib64/stubs CUDNN_VERSION=7.6.5.32 WITH_GPU=ON WITH_AVX=ON HOME=/root CPLUS_INCLUDE_PATH=/usr/local/python3.7.0/include/python3.7: GOROOT=/usr/local/go GOPATH=/root/gopath启动命令RUN chmod +x keyword.sh添加cron 任务到容器RUN (crontab -l ; echo "0 23 * * * sh /home/keyword.sh") | crontab RUN (crontab -l ; echo "10 23 * * * rm -r /home/tmp/*") | crontab同时运行Python 代码和cron 服务CMD python3 /home/keyword_and_video_info.py && cron -f

この Dockerfile には、次の主要なステップが含まれています。

  • ベースイメージを使用します。
  • コンテナのポートと作業ディレクトリを設定します。
  • システムツールとcronをインストールします。
  • 必要に応じて環境変数を適切に設定します。
  • 指定されたキーワードを含む起動コマンド.sh
  • 毎日午後11時に実行する2つのcronタスクを追加します

ステップ2 : Dockerイメージを構築する

次のコマンドを使用して Docker イメージをビルドし、上記の Dockerfile を Dockerfile と同じディレクトリに配置します。

 docker build -t my-container-image .

ステップ3 : コンテナを実行する

次のコマンドを使用してコンテナを実行し、Python コードと cron サービスの両方をバックグラウンドで実行します。

 docker run -d my-container-image

これにより、定期的なバックグラウンド タスクを実行するためのバックグラウンド コンテナーが作成されます。

コンテナ内にバックグラウンド タスクがない場合、実行中のコンテナは作成後 1 秒で終了することに注意してください。バックグラウンドタスクがなく、コンテナを終了したくない場合は、

 CMD ["tail", "-f", "/dev/null"]

Dockerfile の最後に配置します。

<<:  2023 年のデータ分析とビジネス インテリジェンス開発のトレンドは何ですか?

>>:  Kubernetes ネットワークのトラブルシューティングの実践

推薦する

chicagovps - 夏季限定VPS/超低価格専用サーバー

おなじみの chicagovps の夏休みプロモーションがやって来ました: 月額 30 ドルからとい...

Facebook の利用可能な Hosts ファイル

中国に来る多くの外国人にとって、Facebook にアクセスして海外の友人と連絡を取ることは非常に一...

大ヒットした3Dタイタニックからの主要なトラフィック選択戦略の簡単な分析

仕事が忙しくて、最近ヒットした映画「タイタニック3D」の視覚体験を楽しむために映画館に行く時間があり...

過激な知乎は次のビリビリになりたいのか?

「今ニューヨークにいます、飛行機から降りたところです」や「輪は狭いですが、知り合いはたくさんいます」...

フォロワー5万人のうち、商品を購入した人は50人だけ。WeChat電子商取引の失敗の4つの罪が明らかに

ネット上では、インターネット思考でWeChatで物を売って月に数万ドルを稼ぐという成功談がどんどん増...

主流のリレーショナル分散データベースの選択と設計

[[420327]] [[420328]]王宗瑞Alibaba Cloud データベース配信アーキテ...

K8s のポッドとコンテナの設計パターン

著者: Qiu Ming、PaaS 製品部門、中国モバイル クラウド機能センター近年、コンテナ技術は...

タオバオの公式デザイン変更がリーク、今月末までに完了する可能性

10月25日、ある商人が易邦電力網に明らかにしたところによると、タオバオは昨日から改訂された新ホーム...

例の説明: 両者間の ZS 論争の焦点は「ユーザー エクスペリエンス」です。

まず、私の経歴についてお話しします。大した経歴ではありません。私は SEO 実践者であり、ローカル ...

社内スキルの実践こそが、eコマースマーケティングの真の解決策である

以前、電子商取引の運営を担当している友人が私に、会社には目標も計画もなく、利点もないのに、社長はTO...

Xiaomi の広告機能は 4A よりもプロフェッショナルです。

月収10万元の起業の夢を実現するミニプログラム起業支援プランXiaomi といえば、まず思い浮かぶの...

テクノロジー企業が半導体のデジタル変革に向けた新たな力の構築に貢献

近年、半導体業界は急成長を遂げていますが、開発プロセスは順調ではありません。世界経済の成長鈍化、技術...

ソーシャルメディアと購買決定がユーザーの購買行動に与える影響

マーケティングの目的は、タッチポイントと購入の瞬間に消費者に影響を与え、彼らの意思決定に影響を及ぼす...

企業ウェブサイトのSEOにおけるコアキーワードの選び方

企業にとって、自社のウェブサイトを構築するのは過去の話です。現在、ほとんどの企業は自社のウェブサイト...

VMware Explore 2022 は、中国企業のクラウド インテリジェンスの加速を支援するマルチクラウド ソリューションをリリースします。

企業のデジタル変革が深まり続けるにつれて、マルチクラウド アーキテクチャがほとんどの企業の選択肢とな...