docker

【NewRelic】PHP agentの設定中に「/usr/local/etc/php/conf.d/newrelic.ini: No such file or directory」となった場合の対処法

NewRelicのアカウントを作成し、言われるままにPHPのAgentを設定しているとエラーに遭遇。どうやらnewrelic.iniがコンテナ内に存在しておらずsedコマンドが実行できないとのこと。 $ docker build -t "php:8.3.7-apache_with_newrelic" --build-arg NEW_RELI…

【Docker】IPアドレスが枯渇した時の対処法

コンテナ起動時に、利用できるIPアドレスが無かったり、サブネットが無い場合以下のようなエラーが出ます。 Error response from daemon: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network 初…

【Docker】Goのプログラムをマルチステージビルドして動かす

マルチステージビルドとは マルチステージビルドとは、Dockerイメージをビルドする際に複数のコンテナ、ステージを使用する手法です。基本的に最初のステージでビルドや依存関係の解決を行い、最終のステージではコンテナに実行ファイルとその他実行に必要な…

【Docker】Dockleとgithub-actionsを使ってコンテナイメージの自動脆弱性診断を行う

Dockerを用いて開発を行っている場合、コンテナのセキュリティも少々気になりますよね。そんなときはerzz/dockle-actionを使えばgithub-actions上で脆弱性診断が行なえます。 使い方 以下のyamlを.github/workflows/docker-test.ymlに貼り付けてリモートにpu…

【Docker】pecoを使って[docker exec -it <id> bash]を便利に

pecoとは 簡単にいうと 「標準入力から受けた行を選択しできるようにして、選択した行を標準出力に返す」 コマンドです。 これまで出力を確認してコピペしていた作業がpecoを使うとすごく便利になるというわけです。 インストール brewを使ってインストール…

【Go言語】goでdockerコンテナを作成する

「docker create」 をGo言語で 「Go client for the Docker Engine API」パッケージを使用します。 https://pkg.go.dev/github.com/docker/docker/client 以下のコードを実行するとdocker create httpdと同様の動作を行えます package main import ( "contex…

【Docker】パスワード認証つきでSSH接続ができるdockerコンテナを作成する

DockerでSSHができるコンテナの作成を行う記事はたくさん見つかるのですが、パスワード認証でSSH接続ができるようにする記事は少なかったので書きます。 ubuntuのDockerfile SSHをされる側はubuntu:latestで行います。 内容としてはopenssh-serverをインスト…

Docker Desktopは初期設定で64GBも容量を圧迫する

最近、Dockerを使用して開発を行っていたところ、ディスク容量に問題が発生しました。DockerのDisk imageが64GBも占有していたのです。この容量が圧迫され、他の作業に支障をきたすようになっていました。 DockerはDisk imageの容量を先に確保する Docker De…

Dockerで容量が圧迫されてると感じたときにすること

基本的に容量が圧迫される原因はイメージ・ボリューム・キャッシュあたりです。特にキャッシュは普段見ないので以外に気づきません。以下のコマンドを実行するといろいろなものが削除されて容量が戻ります。 # 使用されていないボリューム, イメージ, ネット…

【k8s】kubernetesでMySQL + Goのアプリをデプロイする

MySQLをデプロイ Goのアプリをデプロイ イメージの作成 pushしたイメージからPodを作成する 注意 この記事で用いているソースコードの大半はchatGPT(GPT-4)を用いて生成されています。あくまでサンプルと思って読んでください。 MySQLをデプロイ 以下のyaml…

Dockerのnginxコンテナは/etc/hostsを参照しないためhost.docker.internalを名前解決できない

nginxコンテナでhost.docker.internalを利用しようとした際に一生名前解決ができなくて困った件を書きます。 TL;DR nginxは/etc/hostsを参照しないので/etc/hostsに記載されても名前解決できない 172.17.0.1 host.docker.internal そのためhostネットワーク…