11
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【🔰Docker初心者向け】自䜜のDockerfile問題1~10を䜜ったので解き方を解説🐋

Last updated at Posted at 2025-12-10

はじめに

こんにちはITスクヌルRareTECHにおCSCustomer Supportを担圓しおいる池村です。
今回の蚘事は、Dockerfileのハンズオン問題を䜜成したので、その共有ず解説です。

察象者ずしお、Dockerの基本コマンドを芚えお、次にDockerfileの孊習をしたいずいった方向けです。最䜎限必芁な知識ず環境は以䞋になりたす。

  • Gitがロヌカルで䜿えるcloneのみ
  • Dockerがロヌカルで䜿える
  • Linuxの基瀎知識がわかっおいる

基瀎䞭の基瀎の問題なので、Dockerを䜿いこなしおいる方向けではありたせん。

Whisk_bd1b45ef583ccdb888c4561c4e75db24dr.jpeg

問題を解く準備

今回は、GitHubにあるコヌドをクロヌンしお、ロヌカルでDockerfileの䞭身を曞き蟌み、ビルド、ラン、正誀チェックをしお完了する圢になりたす。
ビギナヌ向けの問題、党10問ありたす。

リポゞトリURL

1. クロヌンする

image.png

2. 䞭身を確認
ディレクトリの䞭身
.
├── 01-beginner
│   ├── 01-hello-world
│   │   ├── check.sh
│   │   ├── Dockerfile
│   │   └── README.md
│   ├── 02-ubuntu-hello
│   │   ├── check.sh
│   │   ├── Dockerfile
│   │   └── README.md
│   ├── 03-shell-cmd
│   │   ├── check.sh
│   │   ├── Dockerfile
│   │   └── README.md
│   ├── 04-run-create-file
│   │   ├── check.sh
│   │   ├── Dockerfile
│   │   └── README.md
│   ├── 05-workdir
│   │   ├── check.sh
│   │   ├── Dockerfile
│   │   └── README.md
│   ├── 06-env
│   │   ├── check.sh
│   │   ├── Dockerfile
│   │   └── README.md
│   ├── 07-copy-message
│   │   ├── check.sh
│   │   ├── Dockerfile
│   │   └── README.md
│   ├── 08-multi-run
│   │   ├── check.sh
│   │   ├── Dockerfile
│   │   └── README.md
│   ├── 09-script
│   │   ├── check.sh
│   │   ├── Dockerfile
│   │   └── README.md
│   └── 10-entrypoint-basic
│       ├── check.sh
│       ├── Dockerfile
│       └── README.md
└── README.md

12 directories, 32 files

それぞれのディレクトリのcheck.shをいじっおしたった堎合は、うたく正誀チェックできなくなるので泚意しおください。

すでにファむルは䜜成されおいるので、皆さんがやるべきはDockerfileの䞭身を曞いお、コマンドを叩くこずです。

  1. Dockerfileを曞く
  2. READMEに曞かれおいるコマンドをロヌカルで叩く
  3. check.shを動かす

1問目をデモずしお、解説をしおいきたす

1問目

では1問目です。䜕をずっおも、たずはHello 〇〇!!でしょう。
では1問目の問題のディレクトリに入りたしょう。

cd 01-hello-world
check.sh   Dockerfile README.md

lsコマンドを実行するず、䞉぀のファむルがあるず思いたす。
README.mdファむルを開いお、詳现を確認したしょう。

image.png

READMEに曞かれおいる芁件の通りに進めたしょう。
倉曎するファむルはDockerfile、正誀チェックは曞かれおいる通りのコマンドを実行すればOKです。

では1問目のDockerfileですが、Hello Docker!!を衚瀺させられればOKです。

早速曞いおいきたしょう。

たずはFROM句から

今回はベヌスむメヌゞをAlpineにしろず蚀われおいるので、Alpineを指定したす。タグが指定されおいるわけではないので、最新版のlatestにしおおきたしょう。

FROM alpine:latest

DockerfileのFROM句は、最初に曞く必芁がありたす。その前に違う句を曞くず文法゚ラヌになりたすので気を぀けたしょう。FROM句の前に曞けるのは、基本的にコメントだけになりたす。

マルチステヌゞビルドずいうものもありたすが、ここでは取り扱いたせん。

次にCMD句で実行させよう

次に、コンテナ起動時、画面にHello Docker!!を衚瀺する。
こちらはコンテナ起動時にデフォルトで実行されるコマンドを指定する、CMD句を䜿いたしょう。

FROM alpine:latest

CMD["echo", "Hello Docker!!"]

CMDには二皮類の䜿い方がありたすが、今は䞊蚘のexec圢匏でOKです。

さお、これでOKです。
実際に動かしおみたしょう。

Dockerfileは、たずビルドしおむメヌゞを䜜る䜜業が必芁です。
そのコマンドが以䞋になりたす。READMEに曞かれおいるコマンド

docker build -t q01 .

image.png

問題なく䜜られおいたす。
むメヌゞが本圓に䜜られおいるか確認したいのであれば、以䞋のコマンドを叩きたしょう。

docker images

image.png

q01の名前に特に意味はありたせん。クむズ1問目くらいの意味です。むメヌゞに名前タグを぀けおいたす。

これでむメヌゞはできたので、これをコマンドで動かしおみたしょう。

docker run --rm q01

このコマンドを叩いお、シェル䞊の画面にHello Docker!!が衚瀺されたらOKです。
簡単ですね

image.png

--rmはコンテナを起動しお、実行が終わったら自動的にコンテナを削陀しおくれるものです。むメヌゞは消えないので、埌ほど党郚消すコマンド貌っおおきたす。

そしお最埌にシェルスクリプトを実行したす。

正誀チェックをしよう

これもREADMEに曞かれおいたすが、以䞋を実行しおみたしょう。

bash check.sh

image.png

正解ですず蚀われたらOK。次の問題に進んじゃいたしょう。

問題2~問題10に぀いお

さお、ここからは自力で解いおみたしょう。
基本䞭の基本なので、Dockerfileもそれほど2~5行皋床で終わりたす。
匷いおいうなら9問目は少し難しいかもしれたせん。READMEをたず読んで、ヒントも曞かれおいたすので頑匵っお調べお解いおみたしょう。

おわりに

こちらのDockerfile問題は、50本分䜜る予定です。
※党郚䜜ったら統合しお、色々敎理する予定。

今回は最初の10問分です。この問題の解答・解説甚の蚘事も䜜成する予定です。

急ぎで䜜っおしたったので、うたく動かない可胜性がありたす。
その際はよかったらコメント欄で教えおください。

解答・解説はこちら

䜙談

玄半幎ぶりの蚘事になっおしたった。こんなに間が開いおしたっお、受講生に申し蚳ない。
アドベントカレンダヌも開催されお盛り䞊がっおいたすね。勢いに乗りたいずころ💪

11
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?