みーのぺーじ

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

Docker

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 Documentation 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…