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?

Dokerコマンド

Last updated at Posted at 2026-01-02

【コンテナ作成】

例:Oracle Linux環境構築

◆1. Dokerイメージの取得

docker pull oraclelinux:9

解説:

  • docker pull: Docker Hubからイメージをダウンロードするコマンド
  • 他のバージョンも選択可能:oraclelinux:8, oraclelinux:9 など

◆2. コンテナの起動

docker run基本オプション
docker run -it -d -p 8080:80 --name container1 oraclelinux:9

各オプションの解説:

  • -i (interactive): 標準入力を開いたままにする
  • -t (tty): 疑似ターミナルを割り当てる
  • -d (detach): バックグラウンドで実行
  • -e (): 環境変数を設定
  • -p 8080:80: ポートマッピング
    • 8080: ホストマシンのポート
    • 80: コンテナ内のポート
    • ホストの8080番にアクセスすると、コンテナの80番に転送される
  • --name container1: コンテナに識別しやすい名前を付ける
  • oraclelinux:9: 使用するイメージ名

◆3. コンテナ内部への接続

docker exec -it container1 bash

解説:

  • docker exec: 実行中のコンテナでコマンドを実行
  • -it: インタラクティブなターミナルセッション
  • container1: 接続先のコンテナ名
  • bash: 実行するシェル

【基本コマンド】

# コンテナの状態確認
docker ps

# コンテナの停止
docker stop container1

# 既存コンテナの起動(停止後)
docker start container1

# コンテナの削除
docker rm container1

# イメージの確認
docker images

#ログを確認
docker logs container1

【ネットワーク設定】

◆ネットワークの種類

1. bridge(デフォルト)

# デフォルトのbridgeネットワーク
docker run -d --name app nginx
# 自動的に172.17.0.x/16のIPが割り当てられる

2. host(ホストと同じネットワーク)

# ホストのIPアドレスを直接使用
docker run -d --network host --name web nginx
# コンテナはホストのIPアドレスを共有

注意:

  • ポートマッピング(-p)は不要
  • 複数コンテナで同じポートは使えない

3. none(ネットワークなし)

# ネットワーク接続なし
docker run -d --network none --name isolated nginx

4. カスタムネットワーク(推奨)

# 自分で設計したネットワーク
docker network create mynetwork
docker run -d --network mynetwork --name app nginx

◆固定IPアドレスを割り当てる方法

# ネットワーク作成
docker network create --subnet=192.168.50.0/24 mynetwork

# IPアドレスを割り当てたコンテナを作成
docker run -it -d --name container1 --network mynetwork --ip 192.168.50.10 oraclelinux:9

# 既存コンテナに別のネットワークを追加
docker network connect mynetwork container1 --ip 192.168.50.11

◆ネットワーク管理コマンド

# ネットワーク一覧
docker network ls

# ネットワークの詳細情報
docker network inspect ネットワーク名

# ネットワーク削除
docker network rm ネットワーク名

# 未使用ネットワークを一括削除
docker network prune

# コンテナをネットワークから切断
docker network disconnect ネットワーク名 コンテナ名

# コンテナをネットワークに接続
docker network connect ネットワーク名 コンテナ名

【Docker Volume】

コンテナ用の外付けストレージのようなもの

  • コンテナを削除してもデータが消えない
  • 複数コンテナでデータを安全に共有できる
  • ホストのファイルシステムから独立している

◆Volume管理コマンド

-v ホストのパス:コンテナのパス
左側: Dockerホストマシンのパス
右側: コンテナ内部のパス

1. Named Volume(名前付きボリューム)- 推奨

# Volumeを作成
docker volume create myvolume

# 使用
docker run -d -v myvolume:/var/lib/mysql --name db -e "MYSQL_ROOT_PASSWORD=xxxx" mysql:8.0

# 確認
docker volume ls
# DRIVER    VOLUME NAME
# local     myvolume

#コンテナ内部への接続
docker exec -it db mysql -uroot -pxxxx

特徴:

  • Dockerが管理する場所に保存(通常: /var/lib/docker/volumes/
  • 名前で識別しやすい
  • 複数コンテナで共有可能
  • 本番環境で推奨

2. Bind Mount(バインドマウント)

# ホストの特定ディレクトリをマウント
docker run -d \
  -v /home/kudo/myapp:/app \
  --name webapp \
  myapp:latest

# 相対パスも使える(現在のディレクトリ)
docker run -d -v $(pwd)/data:/data --name app myapp

特徴:

  • ホストの実際のディレクトリパスを指定
  • ホスト側で直接ファイル編集可能
  • 開発環境でよく使う
  • パスが明示的なのでわかりやすい

違いの例:

# Named Volume: Dockerが管理
-v mydata:/data

# Bind Mount: 絶対パスまたは相対パス
-v /home/kudo/data:/data
-v $(pwd)/data:/data
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?