はじめに
こんにちは。今回は、Dockerの基本的な操作を学びながら、以下のようなUbuntuコンテナを作成することを目指します。
- 最も単純な、rootユーザで操作できる
Ubuntu(Linux)
環境作成 -
Dockerfile
を活用し、一般ユーザで操作できるUbuntu(Linux)
環境作成
Dockerのインストール
WindowsやMacにDockerをインストールする場合、Docker Desktop
を使用します。Macについては以下を参考にしてください。
Windowsについては以下を参考にしてください。
Dockerの動作確認
Dockerを使用するには、Docker Desktop
を起動しておく必要があります。Docker Desktopを起動した状態で、WindowsならPowerShell
、Macならターミナルを開き、以下のコマンドを実行します。コマンドを実行してバージョンが表示されれば、Dockerの動作確認は完了です。
docker --version
Dockerイメージの取得
Dockerでは、コンテナを作成して、コンテナの中で開発を行います。Dockerやコンテナの基本的な知識がわからない方は、以下を参考にしてください。
では、早速コンテナを作っていきます。コンテナを作るには、その元となるイメージが必要です。イメージは、コンテナの元となるテンプレートの事です。
pull
コマンドを使うことで、Docker Hub
というDockerが持つクラウドのリポジトリから、イメージをダウンロードできます。ここでは、Ubuntuイメージをダウンロードします。以下のコマンドを実行することで、Ubuntuイメージをダウンロードできます。
docker pull ubuntu
次に、ダウンロードしたdockerイメージの一覧を表示するために、以下のコマンドを実行します。Ubuntuイメージが表示されることを確認します。
docker images
Dockerコンテナの作成
次に、Dockerコンテナを作成します。run
コマンドを実行することで、新たなコンテナを作成し、起動することができます。runコマンドで指定するオプションについては、Webで多くの解説記事があるので、そちらを参照してください。
docker run -it -d --name my-ubuntu ubuntu
コンテナ内に入る・出る
起動したコンテナに入るには、以下のコマンドを実行します。ここでは、Ubuntuのコンテナ内にあるbashを実行しています。これにより、コンテナ内でbashを使用したコマンド操作が可能になり、自由にUbuntuの環境として使用することができます。以上の方法でUbuntuコンテナを作成した場合、rootユーザで操作できる事がわかります。一般ユーザを使用したい場合のコンテナ作成方法は、本記事の後半で説明します。
docker exec -it my-ubuntu bash
コンテナから出るには、以下のコマンドを使用します。
exit
コンテナ一覧表示
実行中のコンテナ一覧を表示するには以下のコマンドを使用します。コンテナから出ただけでは、コンテナは停止しないため、ps
コマンドで表示されるはずです。
docker ps
起動・停止に関わらず、コンテナ一覧を表示するには以下のコマンドを使用します。コンテナを停止してから、ps
コマンドとps -a
コマンドを比較すると違いがわかるので試してみましょう。
docker ps -a
コンテナの停止
コンテナを停止するには、以下のコマンドを使用します。
docker stop my-ubuntu
既存のコンテナの起動・操作
run
コマンドで既に作成済みのコンテナが停止していた場合に起動するには、以下のコマンドを使用します。
docker start my-ubuntu
起動したコンテナに入るには以下のコマンドを実行します。
docker exec -it my-ubuntu bash
コンテナから出るには、以下のコマンドを実行します。
exit
コンテナを停止するには、以下のコマンドを実行します。
docker stop my-ubuntu
コンテナの削除
コンテナを削除するには、以下のコマンドを実行します。
docker rm my-ubuntu
イメージの削除
イメージを削除するには、以下のコマンドを実行します。
docker image rm ubuntu
以上で、Ubuntuのコンテナの作成・起動・停止・削除まで行いました。ここまでが、Dockerの基本的な使い方になります。ここからは少し応用で、Dockerfile
というものを用いて、一般ユーザで操作できるUbuntuのコンテナを作成してみます。
Dockerfileの作成
ローカルのPCの/Users/ユーザ名/Documents/CustomImage
フォルダに、Dockerfile
を作成します。CustomImage
フォルダ内には、Dockerfile
、作成するイメージに含めたいファイル
のみを置いておく必要があります。また、Dockerfileは通常、Dockerfile
というファイル名で作成します。以下のような内容のDockerfileを作成してみましょう。
# M1 MacのみFROMの記述が必要
FROM --platform=linux/amd64 ubuntu:latest
# RUNコマンドは、コンテナ作成時に自動で実行するコマンドを指定
RUN apt update -y
RUN apt install -y sudo git make curl ssh vim emacs
# fogeというユーザを作成、fogefogeというPWを設定
RUN useradd -m -s /bin/bash foge
RUN echo "foge:fogefoge" | chpasswd
# sudoでroot権限のコマンドを実行できるように指定
RUN gpasswd -a foge sudo
# コンテナを指定したユーザで実行(rootユーザ以外で実行したい)
USER foge
# ワークディレクトリを設定
WORKDIR /home/foge/
次に、イメージを作成するためにbuildします。Dockerfileを置いたディレクトリに移動して、以下のコマンドを実行します。
docker build . -t ubuntu_image
イメージができていることを確認します。
docker images
イメージからコンテナを作成します。
docker run -it -d --name my-ubuntu ubuntu_image
作成したコンテナに入ります。
docker exec -it my-ubuntu bash
以上が、Dockerfileを使用した、一般ユーザでのUbuntuコンテナ実行方法になります。今後、Ubuntuコンテナを作成して作業する際の参考にしていただければと思います。
おわりに
本記事では、Ubuntu(Linux)を例にして、Dockerの基本的な使い方を解説しました。今後は、Dockerの基本的な操作を確認する際に、本記事を活用して思い出していただければと思います。