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
404エラーになってしまうときは以下を参照
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
コメント