UbuntuサーバにDockerを導入し、コンテナの起動から停止・削除までを行う方法

投稿者: | 2021-02-15

今回は、Ubuntuサーバにコンテナ環境を構築するDockerを導入し、コンテナイメージを作成後、コンテナの起動から停止・削除まで行う基本的な手順について解説します。

実施環境

OS Ubuntu Server 20.10
Docker 20.10.3

古いバージョンのDockerの削除

初めに、古いバージョンのDockerをアンインストールします。Dockerがインストールされていない場合はこの手順をスキップしてください。

$ sudo apt-get remove docker docker.io containerd runc

GPGキーの作成、Dockerのインストール

初めにパッケージをアップデートし、Dockerのインストールに必要なソフトウェア、コマンドをインストールします。

$ sudo apt-get update
$ sudo apt-get -y install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

インストール後、Docker公式から正規のGPGキーをダウンロードしtrusted.gpg.dにキーを追加します。今回はdocker.gpgという名前のキーを生成します。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg >> docker.gpg
$ sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/docker.gpg --import docker.gpg 
$ sudo chmod 644 /etc/apt/trusted.gpg.d/docker.gpg
$ sudo rm /etc/apt/trusted.gpg.d/docker.gpg~
$ rm docker.gpg

※参考
Docker公式のドキュメントの通り「apt-key」コマンドでの追加も可能ですが、Ubuntu-20.01では「apt-keyは非推奨で/etc/apt/trusted.gpg.d/を使ってください」との警告が表示されます。

GPGキーの生成後、リポジトリにDockerの最新版をダウンロードします。

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Dockerの最新版のダウンロード後、Dockerをインストールします。

$ sudo apt-get update
$ sudo apt-get -y install docker-ce docker-ce-cli containerd.io

Dockerのインストール後、sudoなしでdockerコマンドを使用するためにdockerグループにユーザーを追加します。今回は例としてhogehogeユーザーを追加します。

$ sudo usermod -aG docker hogehoge

dockerグループへユーザーを追加後、一度ログアウトし再度ログインをします。

再ログイン後、「docker version」コマンドを実行し、Dockerのバージョンが表示されることを確認します。

$ docker version
Client: Docker Engine - Community
 Version:           20.10.3
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        48d30b5
 Built:             Fri Jan 29 14:33:25 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.3
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       46229ca
  Built:            Fri Jan 29 14:31:35 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.3
  GitCommit:        269548fa27e0089a8b8278fc4fc781d7f65a939b
 runc:
  Version:          1.0.0-rc92
  GitCommit:        ff819c7e9184c13b7c2607fe6c30ae19403a7aff
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

コンテナイメージの取得

Dockerインストール後、コンテナイメージを取得します。今回はApacheが入った「httpd」というイメージを使用します。Dockerでイメージを取得するには「docker pull」コマンドを使用しイメージを取得します。

$ docker pull httpd

Apacheのイメージ取得後、「docker image ps」コマンドでイメージを取得できたことを確認します。

$ docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
httpd        latest    464fdc577ef4   5 days ago   138MB

コンテナの起動

Dockerイメージを取得後、取得したイメージを使用してコンテナを起動します。今回は以下の内容でコンテナを起動します。

コンテナ名 web01
接続ポート 8080

イメージからコンテナを起動するには「docker run」コマンドを使用します。今回はバックグランドで起動する「-d」オプションとポートを指定する「-p」オプションを指定します。

$ docker run --name web01 -d -p 8080:80 httpd

コンテナ起動後、「docker ps」コマンドでコンテナが起動したことを確認します。

$ docker ps
CONTAINER ID   IMAGE     COMMAND              CREATED          STATUS          PORTS                  NAMES 
a7c2de7a0633   httpd     "httpd-foreground"   14 minutes ago   Up 14 minutes   0.0.0.0:8080->80/tcp   web01 

動作確認

コンテナ起動後、Apacheに接続可能かどうかを確認します。ブラウザから「https://<サーバのIPアドレス>:8080/」にアクセスし、「It works!」の画面が表示されることを確認します。

コンテナの停止・削除

動作確認が終わりましたら、起動したコンテナを停止し削除します。Dockerでは起動中のコンテナをいきなり削除することはできないため、一度コンテナを停止します。コンテナを停止するには「docker stop <コンテナ名 or コンテナID>」コマンドを使用します。

$ docker stop web01

コンテナ停止後、「docker rm」コマンドを使用しコンテナを削除します。

$ docker rm web01

コンテナ削除後、「docker ps -a」コマンドでコンテナが削除されたことを確認します。

$ docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

コンテナイメージの削除

コンテナイメージはコンテナを削除しても残り続けます。今回使用したコンテナイメージを削除するには「docker image rm」コマンドを使用しコンテナイメージを削除します。

コンテナイメージを削除するにはイメージ名かイメージIDが必要となります。コンテナイメージの一覧の表示には「docker image ls」コマンドを使用します。

$ docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
httpd        latest    464fdc577ef4   6 days ago   138MB

今回はコンテナイメージのイメージ名を使用して削除します。

$ docker image rm httpd

コンテナイメージ削除後、「docker image ls」コマンドでコンテナイメージが削除されたことを確認します。

$ docker image ls
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

UbuntuサーバにDockerを導入し、コンテナの起動から停止・削除までを行う方法」への1件のフィードバック

  1. ピンバック: Ubuntuサーバでdocker composeを使い、Nginx+PHP+MySQLのWordPress環境を構築する方法 | Young Leaves

コメントは停止中です。