みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Docker

Docker の /dev/shm の割り当てを調整する

Ray Tune を使用していて,このような警告が表示されました. The object store is using /tmp instead of /dev/shm because /dev/shm has only * bytes available. This will harm performance! You may be able to free up space by deleting files in /de…

Docker Desktop は必要か

Docker Desktop The #1 containerization software for developers and teams Docker Desktop: The #1 Containerization Tool for Developers | Docker 便利なソフトウェアだと思いますが,必ずしも無料ではありません. Pricing | Docker また,実行速度やC…

devcontainer でタイムゾーンをJSTに設定する

devcontainer でタイムゾーンをJSTに設定するには,以下の設定を追加します. devcontainer.json { "containerEnv": { "TZ": "Asia/Tokyo" } } この設定がない場合は, $ date Sat 15 Jul 2023 02:07:46 PM UTC となりましたが,上記設定をすれば, $ date S…

docker は ufw の設定に関係なくポートを開けるので devcontainer を使う

Ubuntu で以下のように ufw を設定しました. $ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), deny (routed) 一見完璧に見えますが,この設定のまま,docker はポートを開けることが可能です. $…

devcontainer に巨大なファイルをコピーする

Visual Studio Code で devcontainer を利用した開発環境はとても便利です.しかし,vscode にサイズが 30 GB のファイルをドラッグ・アンド・ドロップしてコピーしようとしたら,転送速度が 10 MB/s 程度しか出ませんでした.この速度では,完了するまでに …

Dev Container Features で全部入り開発環境を作成する

Dev Container を利用して Docker 環境で開発をすると,それぞれのプロジェクトについて自由に依存関係を構成することが可能になり,大変便利です.しかし,開発に必要なライブラリを1個のコンテナに準備する必要があり,準備が大変でした.それでも一度全部…

Dev Container でゾンビプロセスに対応する

Dev Container を使用していると,ゾンビプロセスが大量発生することに気づきましたので,init を有効にすることで解決しました. 現象 htop コマンドで確認すると,10個以上のゾンビプロセスが発生しています. 解決方法 Docker container で init を最初に…

M1 MacOS の Docker CLI で compose を使う

M1 MacOS で,Docker CLI と docker compose を使用する方法をまとめます.Docker Desktop は使わずに準備します. Docker CLIをインストール 以下のウェブサイトからダウンロードします. https://download.docker.com/ ダウンロードしたファイルを展開して…

docker/setup-buildx-action で複数のイメージを扱う

GitHub Action で,docker/setup-buildx-actionを用いて複数のイメージを扱ってみます. 前提条件 簡単な例として,pip コマンドで依存関係を解決して,結果を表示する Docker イメージをビルドします. Dockerfile FROM python:3.11-slim-bullseye WORKDIR …

devcontainerでcuDNNを使う

Visual Studio Codeのdevcontainerを利用すれば,自分好みの開発環境をDockerfileにまとめられるので便利です.今回は,PythonでTensorFlowを高速に実行するために,devcontainerでGPUを利用できるようにします. 始める前に,DockerのホストにCUDAのドライ…

Dockerのコンテナやボリューム,イメージの一括削除

結論 docker system prune --all --volumes docker system prune docker system prune docker system prune ならば,停止したコンテナ,ネットワーク,宙ぶらりんイメージ(dangling image)を一括で削除します.--allオプションを追加するとイメージも一括で…

DockerでCUDAを使用するための準備

GeForceなどCUDAに対応したグラフィックボードをDockerで使用するために必要な準備をまとめます. 結論 Docker EngineとNVIDIA Container Toolkit をインストールする. 環境 Ubuntu 22.04 LTS Intel(R) Core(TM) i5-12400 NVIDIA GeForce GT 1030 Docker En…

dockerコマンドが動かなくなった

以下の全てのコマンドを実行しても何も応答がない状況になった. $ docker version $ docker ps $ docker help $ docker 直前に,docker daemonを実行しているホストを変更したので,これが原因のような気がした.docker contextコマンドでリセットしようと…

Ubuntu Serverの通信量を監視する

Ubuntu Serverの通信量を監視するために,Node exporterを使って情報を集め,Prometheusで記録し,Grafanaで表示するようにしてみました. Node exporter ハードウェアとOSの情報を取得するためのソフトウエアです.デフォルトで9100 ポートで動作し,/metri…

Visual Studio Code Remote - Containers はウインドウを閉じるとコンテナも止まる

Visual Studio Code Remote - Containers拡張機能を使用して開発環境を整えると,Docker Engineで開発用のコンテナが実行されます.docker-compose.ymlを使用すると,複数の別のコンテナが実行されます. https://code.visualstudio.com/docs/remote/contain…

Dev ContainerでDocker Composeを使いデータベースを起動する

Visual Studio Codeの拡張機能Remote - Containersを使用して,Dev ContainerでDocker Composeを使いPostgresデータベースを起動して,Pythonから操作してみます. 環境 MacOSからUbuntu ServerのDocker engineにリモート接続してVScodeで操作します. % doc…

VScode Remote - Containers のエラー "Could not resolve host" を修正する

VScode Remote - ContainersでGitHubのレポジトリをgit cloneしたところ,"Could not resolve host"というエラーが発生して実行できませんでした. ... Sending build context to Docker daemon 2.048kB Step 1/2 : FROM mcr.microsoft.com/vscode/devcontai…

MacOSやWindowsからsshでDockerを操作する

計算用のDocker Engineサーバーを別の場所に用意して,リビングのソファーでリラックスしながら、MacOSやWindowsのノートパソコンでDokerを操作したいと思ったので,方法をまとめます. 以下ではDocker Engineを実行するリモートサーバーと,Docker Clientを…

rootless Dockerを別のマシンのDocker CLIから使えるようにする

以下では,rootless Dockerをインストールしたリモートサーバーの,ユーザー名はmt,ホスト名はmt-server.localとします. DockerコマンドのPATHの追加 % docker version error during connect: Get "http://docker.example.com/v1.24/version": command [ss…

Ubuntu Serverにrootless Dockerをインストールする

備忘録です. Ubuntu Server をインストール Ubuntu Server 20.04 LTSをダウンロードしてUSBメモリーに書き込み,クリーンインストールします. Get Ubuntu Server | Download | Ubuntu Ubuntu Serverをインストール中にDockerなど追加のソフトウェアをイン…

Raspberry Pi Zero WでDockerを使う

前回の記事で,Raspberry Pi 4BでDockerを使いましたが,思ったよりもリソースが余っているので,より省電力にできないか検討しました.Raspberry Pi Zero WにDockerをインストールして使ってみました. 仕様 Raspberry Pi Zero W 802.11 b/g/n wireless LAN…

Raspberry Pi 4BでDockerを使う

Raspberry Pi 4BのCPUは4 core 1.5 GHzであり,サーバー用途としては十分ですが,開発環境としては遅いです.当たり前ですがIntel 4 core 3.2GHz CPUと比較すると処理速度は遅いです*1. 最近はDockerがマルチプラットフォームビルドに対応しているので,x64…

極小のWebサーバーをHerokuにデプロイした

Alpine Linuxで動作するNginxを使ってWebサーバーをHerokuにデプロイした時の話です. 要件 全てのリクエストを別のドメインにリダイレクトするだけのWebサーバーは,最も単純なWebサーバーの1つです.これをNginxで作成し,Herokuで公開します. 作り方 Doc…

DockerのCMDは文字列でよいのか

WebサーバーをDockerで作成するために,DockerfileのCMDに以下のように書くことを考えます. CMD gunicorn --bind 0.0.0.0:8000 web.wsgi これにより,DockerでWebサーバーを起動すると,問題なくGunicorn - Python WSGI HTTP Server for UNIXが実行されます…

Google Cloud Runは魅力的だがまだ実用的でない

DockerベースのWebアプリケーションの運営に,Google Cloud Runがよさそうだと思ったので,使ってみました.Google Cloud Runは2019年12月に正式リリースされたばかりで,まだ半年しか経過していません*1.とはいうものの,Dockerイメージを指定して,CPUと…

docker-composeのportsとexpose

docker-composeでportsとexposeの使い分けを整理します. exposeはホストからアクセスできないポートですが,portsはホストからアクセスできるポートです.*1 例えば,port 5432にpostgres データベースを起動し,djangoを使ってサーバーを作り,ブラウザー…

docker-composeのオプションとコマンドと引数

docker-composeを使う時に,オプションとコマンドと引数の違いにハマったので整理します. docker-composeは,[options] [COMMAND] [ARGS...]の順番で指定していきます. Usage: docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...] docker-compose -h|-</arg>…

docker-composeのvolumesのパス指定の整理

docker-composeでvolumesを指定するとき,ホストとコンテナのパスがどうなるかをあれこれ考えるとややこしいので,整理します.また,検索しても古い情報が出てくるので,現時点で最新のversion 3を使用します. 公式ドキュメントに詳しく書いてあります. C…

dindからdoodへ

Docker-in-Docker (dind) を使わないでという記事を見つけた. Using Docker-in-Docker for your CI or testing environment? Think twice. dindを使おうと思っているなら,もう一度考え直すのだ.dindはDockerそのものの開発のために作られたものなのだ.di…