Dockerfileを使用して独自のイメージを作成する方法

Dockerfileを使用して独自のイメージを作成する方法

1. 空のディレクトリを作成する

$ cd /home/xm6f/dev 
$ mkdir myapp
$ cd myapp/

2.vim Dockerfileの内容は次のとおりです。

## 基本的なPythonランタイム環境 FROM python
## 作業ディレクトリを設定する WORKDIR /app
## 現在のシステムフォルダの内容をコンテナのアプリディレクトリにコピーします ADD ./app
## 必要な依存パッケージをインストールする RUN pip install -r softwares.txt
## コンテナ外へのアクセス用にポートを開く EXPOSE 80
エクスポーズ3088
エクスポーズ8080
エクスポーズ8066
## 環境変数 ENV NAME HELLO を定義する
## コマンド CMD ["python","app.py"] を実行します

3. 依存関係をインストールする

vim softwares.txt の内容は次のとおりです。

フラスコ
レディス

4.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)

5. コンパイル

docker build を実行します。

6. 新しいイメージが生成されたことを確認する

$ docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
myfirstapp 最新 01ea1129a831 2時間前 699MB

7. 画像を開始する

$ docker run -p 4000:80 myfirstapp

バックグラウンドで実行することもできます:

$ docker run -d -p 4000:80 myfirstapp

8. サービスへのアクセス

# カール http://localhost:4000
<h3>Hello world!</h3><b>ホスト名:</b> a6655d0d7e74<br/><b>訪問数:</b> <i>Redis に接続できません。カウンタが無効です</i>

またはブラウザを使用してサービスにアクセスします: http://192.168.1.160:4000

9. 現在実行中のイメージを表示する

$ docker ps
コンテナID MAGEコマンド作成ステータスポート名
2db45cab2bb4 myfirstapp "python app.py" 2 分前 2 分前にアップ 0.0.0.0:4000->80/tcp elastic_wilson

10. ミラーリングをやめる

$ docker stop 2db45cab2bb4

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerfile の CMD および ENTRYPOINT コマンドの詳細な説明
  • 最高のDockerfileを書く方法
  • Dockerfile の COPY コマンドと ADD コマンドの詳細な説明
  • Dockerfileイメージ構築ファイルとDockerの関連コマンドの詳細な紹介
  • Dockerfile を使用して MySQL イメージを構築し、データの初期化と権限設定を実装する詳細な説明
  • Dockerfile における ENV 命令の具体的な使用法の詳細な説明
  • Dockerfileの使用例
  • 公式 Tomcat イメージを作成するための Dockerfile とイメージの使用方法の詳細な説明
  • Dockerfile の一般的なコマンドの概要
  • Dockerfile を使用して SpringBoot プロジェクトをデプロイする方法
  • Dockerfile を使用して Java ランタイム環境のミラーを作成する方法
  • Dockerfile 命令 ADD と COPY の紹介
  • Dockerfileにおけるマルチステージ(マルチステージビルド)の詳しい説明
  • Docker の基礎: Dockerfile コマンドの詳細な説明
  • Dockerfile を使用して Node.js サービスをデプロイする方法
  • Dockerfile の手順の説明
  • Dockerfile命令VOLUMEの簡単な紹介
  • Dockerfileの簡単な紹介

<<:  MySQLの再帰問題

>>:  jsはユーザーのページ操作を記憶するためにクッキーを使用します

推薦する

MySQLステートメントの記述と実行順序を理解するだけです

MySQL ステートメントの書き込み順序と実行順序には大きな違いがあります。書き順、mysql の一...

jQueryはドロップダウンメニューのスライド効果を実現します

Web ページを作成するときに、クールでスムーズなドロップダウン メニューが必要になることがあります...

JS 手ぶれ補正機能の実装と使用シナリオ

目次1. 手ぶれ補正機能とは何ですか? 1. なぜ手ぶれ補正機能が必要なのでしょうか? 2. 手ぶれ...

jQuery を使用してカルーセル効果を実装する

この記事では、jQueryでカルーセルチャートを実装するための具体的なコードを参考までに共有します。...

VMware vSphere6.0 サーバー仮想化の展開とインストールの図 (詳細な手順)

1. VMware vSphere 導入の早期計画のポイント1. vSphereの利点(わずかに)...

DockerコンテナのIPアドレスを取得する方法の詳細な説明

1.コンテナに入った後 /etc/hosts を cat するコンテナ自体の IP アドレスと (-...

CentOS 7 で yum を使用して MySQL 5.7.20 をインストールする最も簡単な方法

CentOS7 のデフォルトのデータベースは mariadb ですが、mysql を使っている人も多...

MySQL の order by ステートメントの最適化方法の詳細な説明

この記事では、ORDER BY文の最適化について学びます。その前に、インデックスの基礎的な理解が必要...

反応ループデータの実装(リスト)

まず、バックグラウンドから来るデータをシミュレートしてみましょう。ここでは、コードをわかりやすくする...

JavaScript でイベントのバブリングを防ぐ方法

注意すべき点は、イベントバブリング自体の特性上、メリットだけでなくデメリットも生じるということです。...

MySQLがブール型を返すいくつかの状況について簡単に説明します。

mysqlはブール型を返します最初のケースでは、直接戻ります select id='22a...

Jenkins を使用した Vue プロジェクトのワンクリック パッケージングと公開の実装

目次Jenkinsのインストールインストールポート番号を変更します(デフォルトのポートは8080です...

訪問者を惹きつけるウェブサイトコンテンツを作成する14の方法

ネットサーフィンをしていると、私の注意を引こうとする美しいグラフィックでいっぱいの Web サイトを...

Linux で ARM 開発ボード用のファイルシステムを作成する

1. Busyboxのソースコードをオンラインでダウンロードしてください。コンパイル方法については、...