Docker備忘録

Dockerでやった事の忘備録。
完全に自分用の覚え書きです。

概念

かなり端折っていますが、

Docker

WindowsやUbuntu上で動くVmWareやVirtualBOXみたいなもの。

Dockerイメージ

Docerで動くアプリをCD-ROM、DVD-ROMに焼いたようなもの

コンテナ

Dockerコンテナは、Dockerイメージを読み込み、独立した実行環境を提供するプロセスです。

コンテナ内には、書き換え可能なディスク領域が用意されており、コンテナを一時停止し再開することができ、データも維持されます。ただし、コンテナを消去すると、書き換え可能なディスク領域も同時に消去されます。
これを避けるためには、消去するコンテナとは別のdockerコンテナを用意し読み書きを行うか、もしくはハードディスクやSSDなどの領域をdockerコンテナにマウントし、データを読み書きすることでデータの永続化ができます。

Docker Install

Windows版

winget install Docker.DockerDesktop

このコマンドは、Windows Package Manager (winget) を使用して、Docker Desktopをインストールします。

このコマンドを実行することで、Windows環境にDocker Desktopをインストールし、Dockerコンテナを実行できるようになります。

Ubuntu版

sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release -y
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
sudo apt install docker-compose -y
sudo usermod -aG docker $USER

以下のコマンドを解説します。

sudo apt update

このコマンドは、Ubuntuシステムにインストールされたパッケージのリストを更新します。

sudo apt install ca-certificates curl gnupg lsb-release -y

このコマンドは、必要なパッケージをインストールします。ca-certificatesは、SSL/TLS証明書を管理するために必要です。curlは、コマンドラインからURLをダウンロードするために使用されます。gnupgは、暗号化や署名に使用されるGNU Privacy Guardを提供します。lsb-releaseは、Ubuntuのリリースバージョン情報を提供します。

sudo mkdir -p /etc/apt/keyrings

このコマンドは、/etc/apt/keyringsディレクトリを作成します。このディレクトリは、DockerのAPTリポジトリの署名キーを保存するために使用されます。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

このコマンドは、DockerのAPTリポジトリの署名キーをダウンロードして、/etc/apt/keyrings/docker.gpgファイルに保存します。curlは、URLからデータをダウンロードするために使用されます。sudo gpg --dearmorは、ダウンロードされたデータを解凍します。

sudo chmod a+r /etc/apt/keyrings/docker.gpg

このコマンドは、/etc/apt/keyrings/docker.gpgファイルのアクセス許可を変更して、全ユーザーが読み取れるようにします。

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

このコマンドは、DockerのAPTリポジトリをシステムに追加します。echoコマンドは、テキストを出力します。sudo teeは、標準入力から受け取ったテキストをファイルに書き込みます。/etc/apt/sources.list.d/docker.listは、DockerのAPTリポジトリのURLを含むファイルのパスです。

sudo apt update

このコマンドは、APTパッケージマネージャを使用してパッケージリストを更新します。

sudo apt install docker-ce docker-ce-cli containerd.io -y

このコマンドは、Dockerエンジンをインストールします。docker-ceは、Dockerエンジンの本体です。docker-ce-cliは、Docker CLIを提供します。containerd.io

Dockerエンジンに必要なコンテナランタイムであるcontainerd.ioを提供します。

sudo usermod -aG docker $USER

このコマンドは、現在のユーザーをdockerグループに追加します。これにより、ユーザーはDockerコマンドを実行するために必要な権限を持つようになります。注意点として、このコマンドを実行した後に新しいグループメンバーシップを反映するためには、ログアウトして再ログインする必要があります。

これらのコマンドを実行することで、UbuntuシステムにDockerエンジンをインストールし、使用できるようにすることができます。

基本的なコマンド

pull

docker pull httpd

イメージ確認

docker images

イメージを拾ってくる

docker pull wordpress

イメージを動かす

WordPressを立ち上げてみます。
WordPressを動かすのに必要なwebサーバーと、DBも用意し、データを永続化できるように、

 →備忘録として別記事にしました

http://localhost/ または http://PC名/ で接続できます。

Docker上で起動しているコンテナを確認

docker ps -a

Docer上で動いているコンテナを止める

docker stop コンテナID

補足:イメージの動作を止めてもこの時点ではまだデータは失われていない。

一時停止したコンテナの再開

docker start コンテナID

Dockerコンテナを消去

docker rm コンテナID

補足:コンテナの中で変更されたデータは永続化されていなければ消える。

Dockerイメージインストール

全文検索Fess

自分だけのカスタマイズされた検索サイトを作成

curl -o compose.yaml https://raw.githubusercontent.com/codelibs/docker-fess/master/compose/compose.yaml
curl -o compose-opensearch2.yaml https://raw.githubusercontent.com/codelibs/docker-fess/master/compose/compose-opensearch2.yaml
docker compose -f compose.yaml -f compose-opensearch2.yaml up -d

以下のURLでアクセス可能です。
管理者アカウントのユーザー名/パスワードは、admin/admin

http://localhost:8080/

404エラーになってしまうときは以下を参照

Install Elasticsearch with Docker | Elasticsearch Guide [8.13] | Elastic

Wekan(カンバンシステム)

某VPSで稼働中

docker run -p 111.222.33.44:8001 mquandalle/wekan

Dockerを全て初期化してやり直したい

以下危険なコマンドもありますので、壊してもいいDocker環境でやる事。

Dockerで作成したコンテナを全部一括で削除

docker rm $(docker ps -a -q)

Dockerのイメージを全部一括で削除

docker rmi $(docker images -q)

その他いろいろ削除

docker system prune -f
docker image prune -f
docker container prune -f
docker volume prune -f
docker network prune -f

コメント

タイトルとURLをコピーしました