Help us understand the problem. What is going on with this article?

Docker基本コマンド集

docker.png

Dockerとは

Dockerとは、コンテナ技術を使い、アプリケーション開発・実行をするためのプラットフォームです。詳細はWhat is Docker?をお読みください。

Dockerプラットフォーム

コンテナとは

コンテナとは、ホストOS上にアプリケーションの起動に必要なアプリケーション本体必要なライブラリ設定ファイルなどをひとまとめにした「コンテナ」を作成し、「コンテナエンジン」上で動作させる技術のことです。

仮想化技術と似ていますが、仮想マシンに比べて少ないリソースでのアプリケーション実行が可能となるため、メモリやCPUリソースを余分に使うことがありません。

新しい技術なのでプログラミング初心者には学習コストが高いですが、扱えるようになればこんなに便利なものはありません。

Dockerを使うメリット/デメリットは以下の通り。

メリット デメリット
処理が軽量 複数のホストでのコンテナ運用が煩雑になる
環境構築の手間が省ける カーネルを他のコンテナと共有するため、個別に変更できない
DevOpsと相性が良い コンテナ環境でベースとなるOSと異なるOSのシステムを動かすことはできない

※DevOps:開発チームと運用チームが協力しあって開発・運用を進めていく手法

Dockerの基本コマンド一覧

イメージ作成

カレント・ディレクトリ内のDockerfileをビルドしてイメージを作成する。

$ docker build ./

ビルドを最初からやり直す。

$ docker build --no-cache .

コンテナ作成

イメージからコンテナを作成する

$ docker create イメージ名

イメージからコンテナを起動・接続する

$ docker run -it イメージ名 bash

確認

イメージを確認する。

$ docker images

起動中コンテナの一覧を表示する。

$ docker ps

起動中コンテナのIDのみを表示する。

$ docker ps -q

ポートフォワードの関係性を確認する。

$ docker port コンテナ名

操作

ホストの/var/wwwをコンテナ内の/var/htmlからアクセスできるように共有する。

$ docker run -it -v /var/www:/var/html イメージ名 bash

ホスト8080番portへの通信をコンテナ80番portへ転送する。

$ docker run -it -p 8080:80 イメージ名 bash

停止

コンテナを停止する。

$ docker stop コンテナID

起動中コンテナをすべて停止する。

$ docker stop $(docker ps -q)

コンテナを再起動する

$ docker restart コンテナ名

削除

コンテナを削除する。

$ docker rm コンテナ名

イメージを削除する。

$ docker rmi イメージ名(またはイメージID)

DockerHub

イメージをpullする。

$ docker pull ユーザー名/リポジトリ名

イメージをpushする。

$ docker push ユーザー名/リポジトリ名
takahashitakuya031126
Webエンジニアをしています。TypeScript、Vue、Nuxt、React、PHP、WordPress、Laravelでの開発経験があります。詳しい経歴についてはURLをご覧ください。https://www.wantedly.com/users/97500079
https://tokyo-communication.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした