《エラー解決》Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use

Docker

dockerで構築したlaravelの環境をデプロイした時にエラー発生

laravelの環境の簡易図

mysql:5.7

nginx

php

で構成されたcontainerを建てて、動かすことに。CentOsのローカルでは動かすことに成功したのであとは本番環境にデプロイするだけという状況でした。

docker-compose up -dを実行

ローカル同様にdocker-compose up -d でimageを取得し、containerを立てようとしたところ以下のエラーが発生

「ERROR: for nginx Cannot start service nginx: driver failed programming external connectivity on endpoint nginx (<id>): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use」

エラーを読むと80番portが既に使用されているとのことでした。ここで一旦、stackoverでエラー内容を投稿しました。

使用されているportを確認

sudo lsof -i:80を実行

lsofコマンドを使って現在80番portで使用されているプロセスを確認してみることにしました。

4つのプロセスが稼働していますね。PIDだけみると2種類のプロセスですが。このプロセスを本当に止めていいのか不安でしたがおかしくなったら再起動ですればいいと考えこれらのプロセスを切ることに。ちなみにPIDですが「Proportional-Integral-Differential 」の略で、プロセスを一意に定めるために割り当てられる番号です。

sudo kill <PID>を実行

kill コマンドでプロセスを切りに行きます。今回ですと以下のコマンドになります。

このあとdokcer-compose up -d をもう一度実行したところ、無事にlaravelを指定のドメインで表示させることができました。

番外編:働くエンジニアにおすすめアイテム3撰

記事の内容とは別に、日々エンジニアの業務を行う上で役に立っているアイテムを紹介します。どれも実際に使って良いと思ったものだけ紹介していますのでその点はご安心ください。

目の保温マッサージ

普段の業務で一番疲れる目を癒すために目元マッサージャーを毎日使っています。保温とマッサージを自動でしてくれるので、終わった後は血行が良くなり、翌日の目の疲労が激減します。また睡眠の質もあがるのでディスプレイと睨めっこの職業の方は必須アイテムだと思ってます。(笑)

座っている時の負担を減らす

8時間働くとして、その時間の殆どが椅子に座っている状態になるのがエンジニアの宿命です。椅子の性能が低いと身体に余計な負荷を掛けることとなり、良い椅子に座っている人と、そうでない椅子に座っている人にかかる1日の負担はかなり大きいです。ですので、身体への負荷を考えて、できるだけ良い椅子に座るべきです。とは言っても会社の椅子は既に決まっているので以下のクッションを購入することをおすすめします。体を包み込むようなフォールド性があり、疲労や腰の痛みなどが激減します。

自宅での作業効率をあげる椅子

最近購入したのがゲーミングチェアです。楽天ゴールドカードを持っている私は、Amazonではなく楽天市場でこの機種と似たようなものを購入しました。価格帯はほぼ同じで、このゲーミングチェアはAmazon内での評判も良いみたいですし、おすすめです。その理由は作業し終わった後の疲労感が異なり、座り心地もホールド感があって最高ですし、見た目がかっこいいからです。予算に余裕のある方は購入してみてはいかがでしょうか?

エンジニアの基礎知識・教養

別の記事でエンジニアとして知っておくべき技術本についてまとめました。スキルの高いエンジニアは極々当たり前にしっている知識だとおもいますが、そうでない方はエンジニアとして最低限知らないとまずい知識ですのでどこかで購入し、読むことをお勧めします。

タイトルとURLをコピーしました