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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: jsはユーザーのページ操作を記憶するためにクッキーを使用します
lepus3.7 を使用して MySQL データベースを監視中に、次の問題が発生しました。このブログ...
これが何を指しているのかをどのように判断するのでしょうか? ①グローバル環境で呼び出された場合はwi...
目次1. 使用方法2. 準備3. 文法3.1 変数と代入3.2 入力および出力パラメータ3.3 プロ...
ページに複数の画像を導入すると、画像のサイズがばらつくことがあります。しかし、それらを一貫したサイズ...
目次機能紹介レンダリング1. ホームページレンダリング用のコード(index03) 2. ゲーム開始...
この記事では、MySQL 8.0.15の詳細なインストールと使用方法のチュートリアルを参考までに紹介...
この記事では、IDEA が MySQL データベースに接続できない問題に対する 6 つの解決策を主に...
JavaScript での HTML (選択オプション) の詳細な説明1. 基本的な理解:コードをコ...
イベントバブリング、イベントキャプチャ、イベント委任JavaScript では、イベント委譲は非常に...
まずは本体から始めましょう:ウェブページを閲覧するとき、最初に目に留まるのは通常、ページの背景です。...
目次1. 親コンポーネントが子コンポーネントにデータを渡す1.1. 親コンポーネントコード1.2. ...
図書館管理ライブラリを作成する データベースを作成します [存在しない場合] ライブラリ名;ライブラ...
内容Hyperledger fabric1.4環境のWindows 10でのセットアップ前提条件Wi...
背景tomcat によって生成された catalina.out ログ ファイルが分割されていない場合...
最近、Rich Harris の <Rethinking Reactivity> ビデオ...