Docker コンテナ技術

Dockerとは?40代から始める仮想環境入門

コンテナ

40代からITスキルを磨き直したい。そんなあなたにとって、「Docker」は避けて通れない技術のひとつです。

この記事では、「Dockerって何?」「どうやって使い始めたらいいの?」という初心者の方向けに、導入から基本的な操作方法までを丁寧に解説します。

Dockerとは

ゲストアイコン
ゲスト

Dockerってなんですか?仮想マシンみたいなもの?

自分アイコン
とも

Dockerは「コンテナ型の仮想化ツール」です。

パソコンの中に、別のOSやアプリ環境を
“入れ物”のように作って動かせるんです。

Dockerは「コンテナ型仮想化ツール」と呼ばれています。

一般的にコンテナとは、物を運ぶための箱(トラックや船のコンテナなど)を指しますが、ITの世界では「アプリケーションやその実行に必要な環境をまとめたパッケージ」のことを意味します。

たとえば、LinuxなどのOS、RubyやPHPといった言語パッケージ、ライブラリなどを一つの“箱”にまとめて、WindowsやMacOSなどの上で動かすことができます。

これは、物理的なPCを仮想的に再現する技術(仮想化)によって実現されています。Dockerは、こうしたコンテナを簡単に作成・実行できるツールなのです。

なお、Dockerの背景にある「仮想化技術」は、以前からさまざまな形で利用されてきました。

私自身、以前担当したプロジェクトでは、VMWareを使ってあらかじめ構築済みのイメージファイル(仮想マシン)をチーム全体に配布し、それを各自のローカルPCで動かすことで開発環境を統一していました。

また、Vagrantを活用して、仮想マシンのプロビジョニング(初期構築)をコード化し、自動でセットアップが行えるようにすることで、手作業のインストール手順を大幅に簡略化することもありました。

こうした「仮想化」+「自動化」の取り組みは、今日のDockerにも通じる考え方です。Dockerはその延長線上にあり、より軽量・高速で柔軟に環境を扱えるようになった技術と言えるでしょう。

Docker利用のメリットとデメリット

Docker利用のメリットとデメリットについて記載します。

メリット

  • 環境構築が簡単で高速
  • バージョン違いの管理がしやすい
  • チームで同じ環境を共有できる
  • WindowsでもLinuxでも動く

環境構築が簡単で高速

アプリ開発において最初に行うことは、プログラミングを実装し動作を確認する環境を構築することです。

Webアプリ開発の場合は、Webアプリを動かすWebアプリサーバーの環境構築や、データを登録するためのデーターベース環境構築が必要になります。

仕事で案件やプロジェクトにおいて、自分が利用するパソコンに環境を構築(以降ローカル環境構築)しますがその場合はいろんなサイトから必要なアプリケーションや、ライブラリをダウンロードします。

特に初めてのフレームワークをインストールする場合は関連するライブラリ等が分からずに環境構築にかなりの時間が必要なります。

DockerはDockerfileにインストールの手順等を記載することで簡単、かつ、自動で環境構築ができます。

バージョン違いの管理がしやすい

仕事で案件やプロジェクト毎に使用する言語や、フレームワーク、ライブラリのバージョンが異なります。過去の案件でバージョンを変えて動かすときもDockerを利用できます。

チームで同じ環境を共有できる

チーム開発において自分が使用しているマシンに同じ環境を適用する場合もDockerを使うメリットがあります。

メンバーの参画や退出が多いプロジェクトにおいても環境構築の手間の効率があがります。

WindowsでもLinuxでも動く

コンテナ同様に移動することが可能なため、windows環境から、Linux環境への移動が容易に行うことができます。

デメリット

  • 最初の理解が難しい(特にLinuxに不慣れだと)
  • 動作速度が遅いと感じることがある
  • 外部デバイスとの連携が難しい

最初の理解が難しい(特にLinuxに不慣れだと)

Dockerの利用において最初のデメリットは、Dockerfileを記載する際の理解度が難しいことです。

DockerはUbuntuやCentOSなどのOS上で動作します。言語やフレームワークなどのインストールは各OSのパッケージソフトに依存します。

Linuxのコマンドの理解も必要であり初心者の方は特に難しく感じます。

動作速度が遅いと感じることがある

言語や、フレームワークをWindwosやMacOSにインストールして実行する場合と比べてDockerは遅いです。

外部デバイスとの連携が難しい

音声やUSBなどのデバイスがDockerに対応できてない場合があります。

ゲストアイコン
ゲスト

Linuxコマンドとか書かないといけないんですよね?自信ないなあ…

自分アイコン
とも

最初は戸惑うけど、今はVSCodeのDevcontainerを使えば、
コマンドをほとんど打たずに使えますよ!

Dockerを使ってみる

実際にDockerをつかってみます。

Dockerダウンロードとインストール

以下の公式サイトからダウンロードできます。

ダウンロードが完了したらそのままインストールをしてください。

Dockerのインストールの手順は省略します。

Docker実行

インストールができたらDockerfileを作成しイメージのビルド、コンテナ起動、コンテナアクセスを行います。

AlpineOSのDockerfile作成

最初にAlpineOSのDckerfileを作成します。

Dockerfileはイメージをビルドするためのビルドの指示を書いたファイルです。

DockerにはDocker Hubに公式のイメージが置かれています。

今回はAlpineのDocker Hubを参考にDockerのイメージを作成します。

このページにAlpineのOSバージョンの記載があります。

Dockerfileを作成します。

    
FROM alpine:3.12
    
  

Dockerfileに記載する内容は以上です。

Dockerビルドでイメージ作成

Dockerfileを保存してコマンドプロンプトなどでDockerのイメージファイルをビルドします。

コマンドは以下の通りです。Dockerfileが配置された場所で実行します。

    
docker build -t img_alp .
    
  

img_alpはイメージファイルの名前です。「.」は現在のディレクトリです。

イメージファイルができたか確認をします。

    
docker images
    
  

img_alpという名前のイメージファイルが表示されますが、されていない場合はビルドでエラーになっている可能性があります。

エラーログや、つづりを確認してください。

Dockerコンテナの作成

イメージができたらrunコマンドでコンテナを作成します。

    
docker run -itd --name com_alp img_alp
    
  

-itdはオプションです。

iはinteractiveの略です。双方向でのやりとりができます。

tはttyの略です。標準入力、標準出力となっている端末デバイスを表示する

dはデタッチドの略です。コンテナをバックグラウンドで実行します。

com_alpはコンテナ名です。

img_alpはビルドで作成したイメージファイルです。

Dockerのプロセスが起動したか確認します。

    
docker ps
    
  

-aをつけると停止中のコンテナも表示されます。

    
docker ps -a
    
  

Dockerコンテナアクセス

以下のコマンドでDokcerのコンテナにアクセスすることができます。

    
docker exec -it com_alp sh
    
  

shはコマンドです。

Dockerコンテナ停止

コンテナを停止する場合は以下のコマンドを実行します。

    
docker stop com_alp
    
  

Dockerコンテナ起動

コンテナを起動する場合は以下のコマンドを実行します。

    
docker start com_alp
    
  

Dockerコンテナ削除

コンテナを削除する場合は以下のコマンドを実行します。

    
docker rm com_alp
    
  

Dockerイメージ削除

イメージを削除する場合は以下のコマンドを実行します。

    
docker rmi img_alp
    
  

【2025年版】Dockerを取り巻く最新動向

Docker Desktopが有料に!?

以前は無料で使えたDocker Desktopですが、現在は企業ユーザー(従業員250名以上など)には有料ライセンスが必要です。

ゲストアイコン
ゲスト

えっ、無料じゃないんですか!?

自分アイコン
とも

個人や小規模利用は無料だけど、会社で使うときは注意が必要だよ。

代替案:Podmanという選択肢

PodmanはRed Hat系の軽量なコンテナエンジンで、Docker互換コマンドをそのまま使えるのが特長です。
しかも完全無料・root権限不要でセキュア!

    
podman run -it alpine sh
    
  

Linux/WSL2上なら、Podmanは非常に軽快でおすすめです。

VSCode Devcontainer × WSL2が最強構成

2025年の定番構成は、Windows上でWSL2(Ubuntu)を使い、VSCodeのDevcontainer機能で開発環境を自動構築する形です。

    
// .devcontainer/devcontainer.json
{
  "name": "My App",
  "image": "node:18",
  "features": {
    "ghcr.io/devcontainers/features/docker-in-docker:2": {}
  }
}
    
  

これならDocker Desktopを使わずに済むだけでなく、プロジェクト単位で環境を使い分けられます。

まとめ

Dockerは、今後も現場で求められるスキルです。
ただ、環境構築の選択肢が増えてきた今、自分のスタイルに合った構成を選ぶことが大切です。

  • 個人開発ならDocker DesktopでもOK(非商用)
  • 業務利用はPodmanやWSL2環境で
  • VSCodeのDevcontainer機能も併用しよう

私も40代でDockerを学びましたが、日々の開発が本当に楽になりました。ぜひ一緒にスキルアップしていきましょう!

2025年06月23日 23:00更新

コメント

0 件のコメント:

コメントを投稿

コメントをお待ちしています。