はじめに
このチャレンジでは、Docker イメージを使って遊びましょう。Docker コンテナイメージは、軽量で独立した実行可能なソフトウェアパッケージであり、アプリケーションを実行するために必要なすべてのもの(コード、ランタイム、システムツール、システムライブラリ、設定)を含んでいます。
このチャレンジでは、Docker イメージを使って遊びましょう。Docker コンテナイメージは、軽量で独立した実行可能なソフトウェアパッケージであり、アプリケーションを実行するために必要なすべてのもの(コード、ランタイム、システムツール、システムライブラリ、設定)を含んでいます。
Docker イメージにはイメージ名とイメージタグが含まれており、イメージ名はリポジトリアドレスとイメージ識別子で構成されています。このサブセクションでは、他人が作成した Docker イメージを自分のリポジトリにプッシュします。
あなたの目標は、dockerhub上のパブリックなubuntuイメージを自分のプライベートリポジトリにプッシュすることです。
このチャレンジの終了時に達成できることの例を以下に示します。
dockerhubに登録してログインする。
ubuntu:22.10イメージを docker hub からローカルサーバーにダウンロードする。
ubuntu:22.10イメージを自分のリポジトリアドレスに変更する。


このチャレンジを完了するには、以下が必要です。
私たちは通常、ウェブサイトなどの静的アプリケーションを実行するためにnginxを使用します。このセクションでは、私たち自身のウェブイメージを構築します。
あなたの目標は、Docker コンテナイメージを作成し、その中に単純なウェブアプリケーションをパッケージ化し、そのイメージを使ってコンテナを起動し、適切にアクセス可能にすることです。
このチャレンジの終了時に達成できることの例を以下に示します。
/home/labex/Codeディレクトリにindex.htmlという新しいファイルを作成し、その内容をhello labexにする。
Dockerfileという新しいファイルを作成する
your_dockerhub_id/web:1.1.0の形式でウェブイメージを構築する。
dockerhubにプッシュする。
your_dockerhub_id/web:1.1.0でwebという名前のコンテナを起動し、ホストのポート80をマッピングする必要もあります。
curlコマンドを使ってhttp://127.0.0.1にアクセスし、出力がhello labexであることを確認する。
このチャレンジを完了するには、以下が必要です。
Dockerfileを使った構築Nginx:latestと指定するDockerfileで EXPOSE コマンドを使ってポート80を公開するコンテナイメージを作成するには、多くの場合、2 つのステップが必要です。
このセクションでは、これら 2 つのステップを 1 つの Docker ファイルにまとめて、マルチステージビルドを実現します。
このチャレンジセクションを完了するために、https://github.com/joker-bai/go-hello-world.gitにHello Worldプロジェクトを用意してあります。
あなたの目標は、マルチステージビルドを使ってコンテナイメージを作成し、そのイメージを使ってコンテナを起動し、適切にアクセス可能にすることです。
このチャレンジの終了時に達成できることの例を以下に示します。
/home/labex/Codeディレクトリにhello-worldディレクトリを作成する。

このディレクトリに以下の内容を持つDockerfileを作成する

your_dockerhub_id/go-hello-world:1.1.0の形式で Docker イメージを構築する。

イメージを docker hub にプッシュする。

go-hello-worldという名前のコンテナを起動し、ポート8080を公開する。

http://127.0.0.1:8080にアクセスして、正常かどうかを確認する。

このチャレンジを完了するには、以下が必要です。
Dockerfileを使った構築このチャレンジのすべての要素を完了しました。おめでとうございます。これで、アプリケーションイメージを作成して管理する柔軟性が得られました。