ソフトウェア -> Docker

Nextcloud を Docker Compose で使用している時にバージョンアップをする方法

結論 1. 実行を停止する $ docker-compose down 2. docker-compose.yml に最新バージョンを記述する latest の場合はこの項目は飛ばして OK (省略) image: nextcloud:21.0.2 (省略) 3. 起動する 結構時間がかかります。 $ docker-compose up -d 注意点 …

DiscordChatExporter の Docker コンテナは arm(Raspberry Pi など)では実行できない

DiscordChatExporter とは github.com 結論 以下のようにエラーが出ます。 $ docker run --rm tyrrrz/discordchatexporter:stable Unable to find image 'tyrrrz/discordchatexporter:stable' locally stable: Pulling from tyrrrz/discordchatexporter f7ec…

Heroku に GitHub 経由で継続的にコンテナデプロイをする方法

結論 heroku.yml を用いましょう。 devcenter.heroku.com 例えば、超単純な heroku.yml ならば以下のようになります*1。 build: docker: web: Dockerfile 補足 ざっくりと Web の記事を検索したところ、CLI 経由でのデプロイしか見当たらなかったので書きま…

Docker Compose でボリュームをマウントする際、type: を用いたときに "services.postgresql.volumes contains an invalid type, it should be a string" と怒られてしまう場合への対処法

状況 docker-compose.yml の volumes: が以下のように書かれていたとします。 volumes: - type: bind source: ./foo target: /var/lib/bar その上で、$ docker-compose up を実行した際に以下のようなエラーが出る場合を考えます。 $ docker-compose up ERRO…

Docker Registry にイメージを push した際に "blob unknown" ("blob unknown to registry") とエラーが出る場合の対応方法の一つ

Docker Registry とは 自前の Docker Hub です。 docs.docker.com 結論 環境変数に以下を追加します。 REGISTRY_HTTP_RELATIVEURLS=true 環境 この状況に陥った環境は以下のとおりです。 インターネット上に Docker Registry を作る(例えば my-docker-reg.e…

Raspberry Pi で Docker Registry に Webインターフェイス を用意する

結論 Webインターフェイス を用いるためにはいくつかの選択肢がありますが、Raspberry Pi でも使えて*1、GitHub のスター数も考慮した結果、docker-registry-ui を用いることにしました。 github.com Raspberry Pi で docker-registry-ui を用いるための doc…

Docker Registry を立てるときの docker-compose.yml

Docker Registry とは 要は自前で立てる Docker Hub です。公式に提供されています。 docs.docker.com 結論 以下のような docker-compose.yml になりました。 docker-compose.yml と同じディレクトリに registry ディレクトリと certs ディレクトリと auth …

Docker コンテナを起ち上げた後、とあるサブネットのクライアントから別のサブネットの特定のサーバに対してだけ突然 SSH ができなくなり ping も通らなくなったとき

理由 異なるサブネットから SSH して Docker コンテナを起ち上げたから 前提 他のサーバには問題ない 本当に「突然」のように感じた サーバは Raspberry Pi である エラーログとしては以下のような感じです $ systemctl status docker.service ● docker.serv…

Docker Compose で MySQL 8 のコンテナを作るときに、自由にスクリプトを実行して環境を作る方法

結論 コンテナ側の /docker-entrypoint-initdb.d 配下に実行したいスクリプトを置きます。するとコンテナ作成時にそれらのスクリプトをファイル名の順番で実行してくれます。 コンテナ作成時にホスト側の適当なディレクトリにスクリプトファイルを詰め込み、…

Docker のイメージやコンテナの保存場所をデフォルトの位置 (/var/lib/docker) から変更する

動機 Raspberry Pi の MicroSD カード上で Docker を操作すると凄まじく遅く、また容量を食いまくるので、外部ストレージに移したいから。 結論 デフォルトの保存先である /var/lib/docker にシンボリックリンクを張ります。 具体的には以下の記事に書かれて…

Raspberry Pi (arm64) の Ubuntu に Docker Compose をインストールする方法

結論 apt で入れます。 具体的方法 apt install を実行してインストールします。 $ sudo apt install -y docker-compose 正しくインストールされたかを確認します。 $ docker-compose -v docker-compose version 1.25.0, build unknown

Raspberry Pi (arm64) の Ubuntu に Docker をインストールする方法

結論 公式ドキュメント の方法に従いましょう。 具体的手順(コマンドのみ) 公式ドキュメントからのコピペです。 1. インストール用のスクリプトをダウンロードする $ curl -fsSL https://get.docker.com -o get-docker.sh 2. ダウンロードしたスクリプトを…

Mac の Docker (Docker Desktop) が starting... が延々と続いて起動しないときの対処方法

前提条件 Version 2.4.0.0 (48506) で確認しました。 結論 ファクトリリセット(工場出荷状態に戻す、というやつです)を行います。 方法 1. Dockerのメニューのアイコンから Preferences を選択します。 クジラのアイコンをクリックして Preferences を選択…

Raspberry Pi では特定の Docker イメージ(コンテナ)は実行できない

結論 原因は、x86_64 でビルドされたから、です。実行時にたとえば以下のようなエラーメッセージが出ます。 standard_init_linux.go:211: exec user process caused "exec format error" 対応方法 以下の記事のとおりです。arm* でビルドし直します。 qiita.…

docker-compose up した際に no declaration was found in the volumes section. というエラーが出てきたときの対処方法

結論(の一つ) volumes の指定場所の記述方法において、カレントディレクトリにちゃんと ./ をつける。 だめな例 version: "3" services: jellyfin: image: jellyfin/jellyfin network_mode: "host" volumes: - config:/config - cache:/cache - media:/med…

Docker Compose で立ち上げる MySQL の文字コード(charset)を utf8mb4 にする

現象(状態) 日本語を保存したところ、格納されたデータが ???? になってしまって悲しい状態のときに 。 大切なこと コンテナ作成時に文字コードを指定しないといけません*1。 結論 以下のような docker-compose.yml を書きます*2。command: で文字コードを…

Rundeck 3 を Docker でインストールした場合のファイルの場所(オンプレとの対比)

結論 Rundeck 3 を オンプレ*1 でインストールした場合と Docker でインストールした場合の各ファイル(ディレクトリ)の場所の対比は以下の表のとおりです。 オンプレ Docker /var/rundeck/projects /home/rundeck/projects /var/rundeck/user-assets /home…

Docker のコンテナに root で入る方法

結論 $ docker exec -it -u 0 CONATAINER_NAME /bin/bash つまり -u オプションに 0 を指定すれば OK です。ユーザID を 0 としてログインすることになります。ユーザID 0 は、root ユーザです(以下の例を参照)。 $ cat /etc/passwd root:x:0:0:root:/root…

Docker Compose で作られたデータボリュームには現在のディレクトリ名が接頭語として付与される

具体例 こんな感じで docker-compose.yml 内で volumes を定義したとします。カレントディレクトリは /path/to/fruits であるとします。 volumes: apple: orange: banana: そして $ docker-compose up してから $ docker volume list すると以下のようになり…

minio(S3 クローン)を Docker Compose で立ち上げる

注意点 初期の Access Key と Secret Key は config.json を見る*1 環境変数に定義したらうまくいかなかった*2 結論 以下のような docker-compose.yml を書いて $ docker-compose up すればよいです。 *1:はず。コンソールに出ない *2:おま環の可能性が高い…

Docker Compose (docker-compose.yml) でコマンドラインオプションを指定する方法

結論 command: を使います。 foobar: image: hoge/fuga command: --option_1=12345 --option_2=abcde

Raspberry Pi(ARM) 上の Docker で MySQL を使う

結論 mysql/mysql-server - Docker Hub を用います。 旧結論 hypriot/rpi-mysql を用いる*1。 - hypriot/rpi-mysql 公式イメージが現時点(2018/10/26)では存在しないので……。 補足 MariaDB の場合も同様に パブリックイメージ を用います。 *1:パブリック…

Docker Compose を用いて Nextcloud を構築する

Nextcloud ownCloud の後継というか Fork というかのクラウドストレージアプリケーションです。 Docker Compose で構築する Nextcloud を Docker を用いて構築します。Docker Compose を用いると凄まじく楽なのでこれを用います。

Docker で IPアドレス を固定する方法

結論 オーソドックスな方法の一つです。 1. Docker の ネットワーク を作成する 以下のようにしてネットワークを新規に作ります。--subnet=10.123.123.0/24 の部分は場合に応じて変更します*1。 $ docker network create --subnet=10.123.123.0/24 my_docker…

Powered by はてなブログ