0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LPIC レベル3の学習記録 実践編 

0
Last updated at Posted at 2025-12-23

はじめ :pencil2:

本記事について、LPIC-3 305(Virtualization and Containerization)の取得を目指して学習を始めました。
本記事は、実際に手を動かしながら学習した内容を記録したものです。

記者の筆者のスペックと状態 :bulb:

筆者の経歴は以下の通りです。

  • 経験:IT業界4年以上(ネットワーク運用)
  • 現在:転職活動をしながらニート中
  • 技術スペック:Server/AWS/プログラミングは独学で勉強、NWは業務経験もあり、特に通信網やバックボーンなどの知識は一定ある。
    ※基本的にはIT業務でよく言われる、下流工程を経験。

なぜ学習をしようとしたのか? :thought_balloon:

結論、LPIC3を取得しようと考えて、取り組みに至った。
理由としては、転職活動をしている中で、自分に目標としているところの近道として取得をしようと考えたから。
ただ、取得だけだと良くないとも思っていることから、知識以外のちょっとしたスキルを身につける観点から、今回このような取り組みを行おうと考えた。

学習環境 :bulb:

使用ツール

・Mac
・Docker Desktop
・Docker Compose

学習方針

・無料で実践的な環境を構築
・手を動かして理解する
・コンテナ技術を中心に学習

LPIC-3 305の試験範囲 :muscle:

LPIC-3 305は以下の分野をカバーしています:

トピック 内      容
351.1 仮想化の概念とツール
351.2 Xen
351.3 QEMU
351.4 libvirt仮想マシン管理
351.5 libvirtネットワークとストレージ
352.1 コンテナ仮想化の概念
352.2 LXC
352.3 Docker
352.4 コンテナオーケストレーション
352.5 コンテナイメージ
353.1 クラウド管理ツール
353.2 Packer
353.3 cloud-init
353.4 Terraform

LPI Linux Professional Institute LPIC-3 Virtualization and Containerization
参考URL:https://www.lpi.org/ja/our-certifications/lpic-3-305-overview/

実践①:Docker学習環境の構築 :pencil2:

1. プロジェクトディレクトリの作成

bashシェル
mkdir lpic305-lab ##ディレクトリ作成
cd lpic305-lab ##作成したディレクトリへ移動
mkdir workspace ##ディレクトリ作成

2. docker-compose.ymlの作成

yamlファイル作成
version: '3.8'

services:
  lpic-lab:
    image: ubuntu:22.04
    container_name: lpic305-lab
    privileged: true
    volumes:
      - ./workspace:/workspace
      - /var/run/docker.sock:/var/run/docker.sock
    working_dir: /workspace
    ports:
      - "8083:8083"
      - "8084:8084"
      - "8085:8085"
    command: tail -f /dev/null

3. 環境の起動

bashシェル
docker-compose up -d #コンテナ起動

docker-compose exec lpic-lab bash #コンテナに入る

学んだポイント

docker-compose.ymlとDockerfileの違い

  • docker-compose.yml:コンテナの起動設定ファイル
    どのコンテナをどう起動するか。
    ポート、ボリューム、ネットワークなどを定義を行う。

  • Dockerfile:イメージを作成するテンプレート(レシピ的な意味だと理解しやすい)
    カスタムイメージを作成する際に使用。
    独自のアプリやツールを追加できる。

実践②:Docker基礎コマンド

基本ツールのインストール

bashシェル
apt update && apt upgrade -y ##アップデート
apt install -y vim git curl wget net-tools iputils-ping docker.io ##

イメージ操作

bashシェル
docker pull nginx #イメージダウンロード

docker images #イメージ一覧

docker rmi nginx #イメージ削除

コンテナ操作

bashシェル
docker run -d --name web nginx #コンテナ起動(バックグラウンド)

docker ps #コンテナ一覧

docker exec -it web bash #コンテナ内に入る

docker logs web #ログ確認

docker rm -f web #コンテナ強制削除

ポート公開

bashシェル
docker run -d --name myweb -p 8080:80 nginx 
#ポート8080でWebサーバー起動
#http://localhost:8080にてブラウザアクセス

実践③:Podmanの学習

Podmanとは?
Podman = コンテナ管理ツール(Dockerの代替)

項目 Docker Podman
デーモン 必要 不要
root権限 root権限が必要 一般ユーザ
セキュリティ 攻撃リスクあり Dockerより安全性は高い
Pod機能 なし あり(Kubernetes互換)

Podmanのインストール

bashシェル
apt install -y podman #podmanインストール
podman --version #バージョン確認

基本コマンド

bashシェル
podman pull docker.io/library/nginx #イメージダウンロード(フルパス指定)

podman run -d --name podweb docker.io/library/nginx #コンテナ起動

podman ps #コンテナ一覧

podman run -d --name myweb -p 8082:80 docker.io/library/nginx #ポート公開

学んだポイント

PodmanはDockerと独立している。また使い分けも同じく以下に記載。

  • Dockerがなくても動作する
  • Dockerの代替品として設計
  • コマンドはほぼ同じ(互換性重視)
  • Red Hat系:Podmanが標準
  • Ubuntu/Debian系:Dockerが主流 ※基本的にはDockerが主流

実践④:ネットワークとボリューム

ネットワーク作成

bashシェル
docker network create appnet #カスタムネットワーク作成

docker run -d --name web --network appnet nginx #ネットワークにコンテナを接続

docker run -it --rm --network appnet alpine sh #疎通確認

ボリュームでデータ永続化

bashシェル
docker volume create mydata #ボリューム作成

docker run -d --name db -v mydata:/data alpine sleep 3600 #ボリュームをマウント

docker exec db sh -c "echo 'Hello LPIC' > /data/test.txt" #データ保存

docker rm -f db #コンテナ削除後もデータが残る

実践⑤:カスタムイメージの作成

Dockerfileの作成

dockerfileの作成
FROM nginx:latest

RUN echo '<h1>My Custom Nginx!</h1>' > /usr/share/nginx/html/index.html #HTMLを記載

EXPOSE 80

ビルドと実行

dockerfileの作成
docker build -t mycustom:1.0 /workspace #イメージをビルド

docker run -d --name custom -p 8085:80 mycustom:1.0 #実行

上記できたら、「http://localhost:8085」にアクセスしブラウザで確認。

学んだポイント

DockerとYAMLの必要性や違いついて。

  • yamlのみ:既存イメージをそのまま使う(コンビニ弁当)
  • Dockerfile:独自のカスタマイズが可能(自分で調理)

Dockerfileが必要な場面としては、以下が想定できる。

  • 独自のアプリを入れたい
  • 追加ソフトをインストールしたい
  • 環境構築にコストと時間をかけたくない
  • 環境変数や設定を変更したい
  • その他

今回は、Macの上にDockerコンテナを構築し、その上に再度DockerコンテナとPodmanコンテナを構築。さらにPodmanコンテナにnginxをインストールしたので、割と興味惹かれながら学習できた。

さいご :pencil2:

最後に、Dockerを学習のために遊んでみたが、理解と興味惹かれました。
目的としては、資格取得のためですが、結果的に領域の理解度の向上にも繋がったので、とても良かったです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?