14
9

More than 1 year has passed since last update.

【Docker初心者】Dockerの基本操作について Part1(buildコマンド、runコマンド等)

Last updated at Posted at 2023-05-07

1.はじめに

最近、山浦清透さんが運営されているプログラミング学習サービス「独学エンジニア」にてDockerについて学び始めましたので、備忘録も兼ねて自分なりにまとめていきたいと思います。

2.Dockerとは

アプリケーションとその依存関係にあるOS・ライブラリを軽量で移植性のあるコンテナと呼ばれる箱に入れて、あたかも違うコンピュータのように扱えるものです。

コンテナ.jpg

3.Dockerのメリット

メリットについては多数あるのですが、いくつか紹介します。

  • 環境の一貫性
    開発、テスト、本番環境で同じDockerイメージを使用することで、環境の違いによる問題を軽減できます。

  • セットアップの容易さ
    Dockerイメージを使用することで、開発者はOSやインストール方法の違いを気にせず、簡単にアプリケーションの環境を構築できます。

  • 移植性
    Dockerコンテナは異なるマシンやクラウドプラットフォームで簡単に実行できるため、デプロイメントの柔軟性が向上します。

  • チームの協調性
    Dockerを使用することで、開発者間で環境設定の共有が容易になり、チーム全体の生産性が向上します。

  • インフラストラクチャ効率
    Dockerコンテナは軽量であり、同じホスト上で複数のコンテナを実行できるため、リソース使用効率が向上し、インフラストラクチャのコストが削減されます。

4.Dockerの基本操作

(1) イメージを取得・ビルドする

コンテナの設計書となるイメージには2通りの作成方法があります。

  • Dockerレジストリより取得する
コマンド
# DockerHubから任意のDockerイメージ(imagename)を取得する場合
$ docker image pull imagename
  • Dockerfileをビルドする
コマンド
# Dockerfileがカレントディレクトリにある場合
$ docker image build .

# タグを付ける場合(-tオプション)
# タグの書式:  名前空間/イメージ名:タグ名
$ docker image build -t test/apache:latest .

# ファイル名を指定する場合(-fオプション)
$ docker image build -f Dockerfile-test .

(2)イメージの一覧を確認する

コマンド
# 現在のイメージの一覧を確認する
$ docker image ls

(3) コンテナを生成・起動する

コンテナ (2).jpg

コンテナの生成・起動には「run」コマンドを、
生成だけには「create」コマンドを、起動だけには「start」コマンドを用います。

コマンド
# 書式:docker container run [オプション] イメージ [コマンド]
$ docker container run test/apache:latest

# コンテナをバックグランドで実行する(-dオプション)
$ docker container run  -d test/apache:latest

# コンテナに名前を付ける(--nameオプション)
$ docker container run --name apache_test test/apache:latest

# 標準出力とターミナルをアタッチする(-itオプション)
$ docker container run  -it test/apache:latest

「-it」オプションはinteractiveの-iオプションとttyの-tオプションの2つを繋げたもので、
コンテナ上で最初に実行されるプロセスがシェルの場合、「-it」オプションを付けることによりコンテナを終了させずに使用できるようになります。

(4) コンテナの一覧を確認する

コマンド
# 起動中のコンテナ一覧を確認する
$ docker image ls

# 全コンテナの一覧を確認する(-aオプション)
$ docker image ls  -a

5.終わりに

Dockerの超基本的なことまとめただけなのですが、やはり自分でアウトプットするとモヤモヤしていた部分がスッキリしたので、積極的にQiita等にアウトプットしていきたいと思います!

Part2では、ポートを公開したり、コンテナ内でコマンドの実行等の基本操作についてまとめて行きたいと思います。

Dockerは使いこなせると環境構築等で本当に便利そうなので早くマスターしたいですね。
また、ポートフォリオにもDockerを使用して作成したいので引き続き学んでいきたいと思います(^^)

6.参考資料

14
9
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
14
9