1. 画像1. 鏡とは何ですか?(1) Baidu 百科事典によると、ミラーリングはファイル ストレージの形式であり、冗長性の一種です。1 つのディスク上のデータは、別のディスク上に同一のコピーが存在し、これをミラーと呼びます。 (2)多数のファイルをミラーファイルにして、GHOSTなどのプログラムを使ってディスクに置き、GHOSTなどのソフトウェアで開いて、多数のファイルに復元することができます。RAID 1とRAID 10はミラーリングを使用します。 (3)一般的な画像ファイル形式には、ISO、BIN、IMG、TAO、DAO、CIF、FCDなどがあります。 観た後はもっとめまいがするのでしょうか? 実際、簡単に言えば、イメージはプログラム コード、基本システム、依存ライブラリ、およびツールを含むアプリのパッケージです。 2. 画像の構成と目的(1) Dockerファイル:画像ファイルを作成するためのレシピ 代々受け継がれてきた秘伝のレシピのような雲南白薬:リンジー、高麗人参、鹿角、三七人参など。 (2)スクラッチ: 最も基本的なDockerイメージであり、基盤→空のイメージ、何もない→ゼロから始めることに相当します 他の画像をベース画像として使用します。巨人の肩の上に立つかのように、それに基づいて他の画像を拡張できます。 しかし、段階的にミラーを構築する必要があります。 (3)完全なオペレーティングシステムには以下が必要です。
bootfs --》コンテナ起動時に必要な内容 rootfs --》コンテナ内のオペレーティングシステム ドッカー保存 docker エクスポート 原理: コンテナが起動すると、カーネルはbootfsを起動し、ベースイメージを直接ロードし、下から上へとレイヤーごとにロードします。 コンテナの実行後にファイルにアクセスする場合、アクセスは書き込み可能なレイヤーからレイヤーごとに上から下へ行われます。 3. 独自のイメージを作成する必要があるのはなぜですか?以前は、Linux および CentOS システムで MySQL をダウンロードするには、yum コマンドを使用する必要がありました。docker テクノロジを習得すると、必要なソフトウェアはすべて docker に取り込むだけで入手できます。Docker は巨大なリソース ライブラリのようなものです。考えられないほど多くのものが含まれています。 学生の中には、「Docker に対する私の想像力を制限したのはテクノロジーだった」と言い、後悔の涙を流す人もいました。 Docker はとても便利で、イメージファイルもたくさんあるのに、なぜ自分で作らなければならないのか、と言う学生もいました。必要なものは何でも引っ張って来ればいいんじゃないの? しかし、他社がどのような画像ファイルを作成しているか不明であったり、特定のニーズを満たせなかったりすることが多いため、企業は独自の画像ファイルを作成する必要があることがよくあります。茅台酒を買いに行ったとき、商人がそれは10年物の茅台酒だと言ったら、あなたは彼を信じますか?これは過去10年間の茅台酒でしょうか?確認しに行ってみたらどうですか?あなたが金持ちなら、私が何も言わなかったことにしてください、ハハハ 2. 鏡作りの手順(10ステップ方式)ステップ1: Dockerfileを編集する[root@sc-docker-server ~]# mkdir /mydocker/ [root@sc-docker-server ~]# cd /mydocker/ [root@sc-docker-server mydocker]# [root@sc-docker-server mydocker]# vim Dockerfile python:2.7-slimより ワークディレクトリ /app ./app を追加する pip install --trusted-host pypi.python.org -r requirements.txt を実行します。 エクスポーズ80 ENV NAME ワールド ENV AUTHOR カリ コマンド ["python","app.py"] ステップ2: requirements.txtファイルを編集する[root@sc-docker-server mydocker]# vim requirements.txt フラスコ レディス ステップ3: プログラムファイルであるapp.pyファイルを編集する[root@sc-docker-server mydocker]# vim app.py FlaskからFlaskをインポート RedisからRedisをインポートすると、RedisError インポートOS インポートソケット # Redisに接続する redis = Redis(ホスト = "redis"、db = 0、socket_connect_timeout = 2、socket_timeout = 2) アプリ = Flask(__name__) @app.route("/") デフハロー(): 試す: 訪問数 = redis.incr("counter") RedisErrorを除く: visits = "<i>Redis に接続できません。カウンターが無効です</i>" html = "<h3>こんにちは {name}!</h3>" \ "<b>ホスト名:</b> {ホスト名} <br/>" \ 「<b>訪問数:</b> {訪問数}」 html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits) を返します。 __name__ == "__main__" の場合: app.run(ホスト='0.0.0.0'、ポート=80) ステップ4: 画像ファイルを生成する次のコマンドを実行して、docker を再起動します。 次のコマンドを実行して、docker build -t sc_friendlyhello_1 を実行します。 ビルドコンテキストを Docker デーモンに送信 4.608kB ステップ 1/9: python:2.7-slim から ---> eeb27ee6b893 ステップ 2/9: WORKDIR /app ---> キャッシュの使用 ---> 81aa71984f63 ステップ3/9: ./appを追加する ---> キャッシュの使用 ---> a5c7c6ed471c ステップ 4/9: ボリューム ["/data_flask"] ---> キャッシュの使用 ---> d4db66a741db ステップ 5/9: pip install --trusted-host pypi.python.org -r requirements.txt を実行します。 ---> キャッシュの使用 ---> bcdee009e5f7 ステップ 6/9: EXPOSE 80 ---> キャッシュの使用 ---> 475474ce55ff ステップ 7/9: ENV NAME ワールド ---> キャッシュの使用 ---> 0f03ead6c99b ステップ 8/9: ENV AUTHOR cali ---> キャッシュの使用 ---> f844eb0f1a78 ステップ 9/9 : CMD ["python","app.py"] ---> キャッシュの使用 ---> ab30484b56b8 ab30484b56b8 の構築に成功しました sc_friendlyhello_1:latest のタグ付けに成功しました [root@sc-docker-server mydocker]# ステップ5: イメージが成功したかどうかを確認する[root@sc-docker-server mydocker]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ sc_friendlyhello_1 最新 ab30484b56b8 32 分前 159MB ステップ6: イメージを使用してコンテナを起動するdocker run -d -p 5080:80 --name sc-hello-1 sc_friendlyhello_1 ステップ7: コンテナのWebサービスにアクセスするcurlまたはChromeブラウザを使用してホストIP:5080にアクセスします 「こんにちは世界」 ホスト名: f4aeb5d5305a 訪問数: Redis に接続できません。カウンターが無効です Redisデータベースコンテナが起動していないため、Flask WebサービスはRedisデータベースに接続できません。 ステップ8: Redisコンテナを起動するdocker run -d -p 6379:6379 --name sc-redis-1 redis ステップ9: 独自のイメージでコンテナを再度起動し、それをredisコンテナにリンクします。docker run -d --name sc-hello-2 -p 5081:80 --link sc-redis-1:redis sc_friendlyhello_1 ステップ10: コンテナのWebサービスにアクセスするcurlまたはChromeブラウザを使用してホストIP:5081にアクセスします 「こんにちは世界」 ホスト名: aad7da1892b5 訪問数: 15 3. 鏡像の作成手術
操作手順:アップロードしたファイルをインストールする root@sc-docker-server ~]# yum install lrzsz -y アップロードされたソフトウェアをインストールします。 最後のメタデータ有効期限チェック: 0:25:32 前、2021 年 8 月 18 日水曜日 09:52:02 に実行されました。 パッケージ lrzsz-0.12.20-43.el8.x86_64 はすでにインストールされています。 依存関係の解決。 治療は必要ありません。 完了! [root@sc-docker-server ~]# ステップ1: アプリのソースコードをダウンロードする https://github.com/docker/getting-started Windowsでダウンロードし、Linuxにアップロードします。yum install git -y Linux の場合: git clone https://github.com/califeng/getting-started.git ステップ2: アプリのソースコードアーカイブを解凍する [root@sc-docker-server ~]# yum install zip unzip -y [root@sc-docker-1 ~]# getting-started-master.zip を解凍します ステップ3: アプリディレクトリに入り、新しいDockerfileを作成する [root@sc-docker-1 getting-started-master]# cd app/ [root@sc-docker-1 app]# vim Dockerfile ノード:12-alpineから ワークディレクトリ /app コピー 。 。 yarn install --production を実行します。 コマンド ["ノード", "src/index.js"] ステップ4:鏡を作る [root@sc-docker-1 app]# docker build -t getting-started . -t getting-started は指定されたイメージの名前です。独自の名前を定義することもできます [root@sc-docker-1 app]# docker images 作成されたイメージを表示します リポジトリ タグ イメージ ID 作成 サイズ 入門 最新 5b903e857b8c 25 秒前 179MB redis 最新 cc69ae189a1a 2日前 105MB nginx 1.19.7 35c43ace9216 7日前 133MB nginx 最新 35c43ace9216 7日前 133MB mysql 5.7.33 5f47254ca581 2週間前 449MB nginx 1.19.6 f6d0b4767a6c 6週間前 133MB ノード 12-alpine 0206ff8a5f9e 7 週間前 88.9MB richarvey/nginx-php-fpm 最新 5c3ad1891297 5 か月前 506MB hello-world 最新 bf756fb1ae65 13ヶ月前 13.3kB jcdemo/flaskapp 最新 4f7a2cc79052 2年前 88.7MB [root@sc-docker-1 アプリ]# ステップ5: 独自のイメージのコンテナを起動する [root@sc-docker-1 app]# docker run -dp 3000:3000 開始 8f150a72e7d2d1650685b00a18d237469fa07c8cd56977773dd266b281a3b4ad [root@sc-docker-1 アプリ]# docker ps コンテナID イメージ コマンド 作成ステータス ポート名 8f150a72e7d2 開始 "docker-entrypoint.s…" 5 秒前 3 秒前にアップ 0.0.0.0:3000->3000/tcp strange_benz deabb58e01b0 nginx "/docker-entrypoint.…" 26 時間前 2 時間前にアップ 0.0.0.0:6655->80/tcp chenpeng [root@sc-docker-1 アプリ]# ステップ6: ブラウザを開いてコンテナ内のウェブサイトにアクセスする コンテナ内の Web サイト: http://192.168.0.161:3000/ 要約する1. イメージ作成は Docker テクノロジーの必須スキルです。Docker を知っていると言うと、他の人は必ずイメージの作成方法を知っているか尋ねてきます。なぜあれを作ったのかと尋ねると、彼らはわざと笑って、これすらできないのに Docker を知っていると言うのだから、この人のスキルは非常に低いに違いないと考えます。ハハ。 2. ミラー製造の詳細な手順は後述します。ミラー製造の 10 ステップ メソッドで、その方法を学習します。時間をかけて、ステップごとに実行してください。 Docker イメージの作成、アップロード、プル、デプロイに関するこの記事はこれで終わりです。Docker イメージの作成、アップロード、プル、デプロイに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Node.js パッケージ マネージャー npm の具体的な使用方法
>>: LeetCode の SQL 実装 (175. 2 つのテーブルの結合)
目次1. 共通機能分類1.1 単一行関数: 1.2 グループ化機能: 2. 単一行関数3. 数学関数...
目次DockerでTomcatをインストールするtomcatイメージを使用してコンテナを作成する(イ...
OpenSSL を使用して SSL キーと CSR ファイルを生成するHTTPS を設定するには、秘...
この記事では、参考までに、テキストループスクロールを実現するアプレットの具体的なコードを例を挙げて紹...
目次MySQL 複数インスタンスマルチインスタンスの概要マルチインスタンスとは何ですか?複数のインス...
NetEase Blog で HTML を使用する場合、テンプレートに直接コードを追加できることは...
目次概要オブジェクトにメソッドを定義するオブジェクトリテラルオブジェクトプロトタイプ動的コンテキスト...
Microsoft IE 5.0 がリリースされる前は、Web プログラミングにおける最大の課題は、...
目次FormDataとは何ですか? vueとaxiosの協力による実践的な体験追加()セット()消去...
コードをコピーコードは次のとおりです。 <!DOCTYPE HTML PUBLIC "...
目次プロジェクト紹介:プロジェクトディレクトリ: TabBar 効果のプレビュー: TabBar 実...
B-Tree インデックスに加えて、MySQL は次のインデックスも提供します。ハッシュインデックス...
データ内に次のような特徴を持つ「 ' 」などの文字が含まれることがあります。 &# ...
Dockerでdocker search centosを使用する場合docker pull dock...
yum を使用してすべての依存関係を一緒にインストールできますが、–downloadonly –d...