Portが既に使われている
コンテナ建てようとしたらそのポートもう使っとるわバーカって言われる。よくある。
8080 使っとるでと言われる
昔建てたコンテナが残っとったか?
code:terminal
ERROR: for sapporo Cannot start service app: driver failed programming external connectivity on endpoint sapporo (6d7f2ac9cf71bbcb121af54d84aac6b363317695929d64ce7ae488f2a580341c): Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: address already in use
はい、、
docker ps 見てもない
curl localhost:8080 してみる
404が返ってくる
は?
curl --head localhost:8080 してみる
404が返ってくるだけでサーバの情報は返ってこない
netstat -anop | grep 8080 してみる
code:terminal
tcp6 0 0 :::8080 :::* LISTEN - off (0.00/0/0)
はい
fuser 8080/tcp してみる
code:terminal
Cannot stat file /proc/65113/fd/0: Permission denied
Cannot stat file /proc/65113/fd/1: Permission denied
Cannot stat file /proc/65113/fd/2: Permission denied
Cannot stat file /proc/65113/fd/3: Permission denied
Cannot stat file /proc/65113/fd/4: Permission denied
Cannot stat file /proc/65113/fd/5: Permission denied
Cannot stat file /proc/65113/fd/6: Permission denied
Cannot stat file /proc/65113/fd/7: Permission denied
Cannot stat file /proc/65113/fd/8: Permission denied
Cannot stat file /proc/65113/fd/9: Permission denied
Cannot stat file /proc/65113/fd/10: Permission denied
Cannot stat file /proc/65113/fd/11: Permission denied
権限がないとは何事か
いよいよ Docker が怪しい
65113番のプロセスなんや
code:terminal
inutano 65113 3.7 8.8 49697728 46974536 ? Ssl May28 54:24 /opt/virtuoso-opensource/bin/virtuoso-t -f
やっぱりお前やんけ!!!
virtuoso公式イメージのDockerfileを探してみる
ふざけんな
virtuosoを止めてsapporoを起動する
code:terminal
ERROR: for sapporo Cannot start service app: driver failed programming external connectivity on endpoint sapporo (6d7f2ac9cf71bbcb121af54d84aac6b363317695929d64ce7ae488f2a580341c): Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: address already in use
なんでや virtuoso やっぱ関係ないやんけ
fuser が見に行く過程でたまたま virtuoso の proc 見れなくてエラー吐いただけだったぽい
virtuosoさんすみませんでした
試しにイメージ全部消して再起動してみる
code:terminal
$ docker-compose down --rmi all
Removing sapporo ... done
Removing network sapporo-service_default
Removing image suecharo/sapporo-service:1.0.1
$ docker-compose up
だめ
「dockerを再起動しろ」とか言っているやつらがいる
スパコンでやってるからsudoないんだよなあ
しょうがないので別ノードに移動してやってみる
やっぱり localhost:8080 埋まってる
なぜ??
一般区画に移動してやってみる
やっぱり localhost:8080 埋まってる
なにこれ????
自分でなんか建てたんだと思ってたけど一般区画でも開いてるならこれきっとスパコンの設定でなんか動いてんですかね
しょうがないのでadminに何立ってるか聞いてみる
どちらも restart docker が解決策だということで、変わらず何もわからない、、
仕方がないのでadminに restart をお願いした
再起動してもだめ!!!!!!!!!!!!!!!!!!!詰んだ!!!!!!!!!!!!!!!!!!!!!!!
なんなんだいったい
ちなみにノードのOSはLinux
code:terminal
$ cat /etc/*release*
CentOS Linux release 7.5.1804 (Core)
Derived from Red Hat Enterprise Linux 7.5 (Source)
Cluster Manager v8.2
slave
cat: /etc/lsb-release.d: Is a directory
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.5.1804 (Core)
CentOS Linux release 7.5.1804 (Core)
cpe:/o:centos:centos:7
手元の Mac で動かすと (docker-compose.yml をちょっといじったが) 動く、、
もしや docker のバージョンか?
code:terminal
$ docker version
Client:
Version: 18.09.8
API version: 1.39
Go version: go1.11.1
Git commit: 0dd43dd
Built: Tue Aug 6 20:03:36 2019
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.09.8
API version: 1.39 (minimum version 1.12)
Go version: go1.11.1
Git commit: 0dd43dd
Built: Tue Aug 6 20:05:39 2019
OS/Arch: linux/amd64
Experimental: false
かたや mac の方は
code:terminal
$ docker version
Client: Docker Engine - Community
Version: 19.03.8
API version: 1.40
Go version: go1.12.17
Git commit: afacb8b
Built: Wed Mar 11 01:21:11 2020
OS/Arch: darwin/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.8
API version: 1.40 (minimum version 1.12)
Go version: go1.12.17
Git commit: afacb8b
Built: Wed Mar 11 01:29:16 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.2.13
GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
oh
試しに admin に docker のバージョンを上げてもらっている
docker-compose のバージョンはそんなに古くなかった
なぜ?
でもpythonが2.7系、、
code:terminal
$ docker-compose version
docker-compose version 1.25.4, build unknown
docker-py version: 4.2.0
CPython version: 2.7.5
OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 2017
netstat で 8080 が開いているように見えるがこれはよくみると ipv6 のアドレスだ
でも curl で普通に叩けるけど…
lsof -i:8080 ではどうか?と聞かれたがこれも何も返らないのだよな
sudo ないからではないかと思っているが自信はない
netstat -nop | grep 8081 でもなんか返ってくるんだよなそういえば
code: terminal
$ netstat -anop | grep 8081
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 0 0 :::8081 :::* LISTEN - off (0.00/0/0)
8082 は?
同じように返ってくる
今まで全く使った記憶のない適当なポートでやってみる
8123 とか
通った!!!なんでや!!!!
code:terminal
$ docker-compose up
Pulling app (suecharo/sapporo-service:1.0.1)...
1.0.1: Pulling from suecharo/sapporo-service
54fec2fa59d0: Pull complete
cd3f35d84cab: Pull complete
a0afc8e92ef0: Pull complete
9691f23efdb7: Pull complete
6512e60b314b: Pull complete
dd3949ac99cf: Pull complete
b6a49cf7340d: Pull complete
057fffd51e9e: Pull complete
e18eca112d93: Pull complete
65f78a8e9a05: Pull complete
51b6da217ec8: Pull complete
Digest: sha256:55071783c0e82970cab436916c746abc7fb080d43f15ade8d20add4f1f74b8b0
Status: Downloaded newer image for suecharo/sapporo-service:1.0.1
Creating sapporo ... done
Attaching to sapporo
sapporo | * Serving Flask app "sapporo.app" (lazy loading)
sapporo | * Environment: production
sapporo | WARNING: This is a development server. Do not use it in a production deployment.
sapporo | Use a production WSGI server instead.
sapporo | * Debug mode: off
うせやん
なんでよ
Ctl+C でストップ、 docker-compose down で落としてから再度 up しても通る
なぜ、、、、
試しに何もしてない一般区画でいろいろのポートを netstat してみる
code:terminal
$ netstat -anop | grep ':80'
(No info could be read for "-p": geteuid()=3003 but you should be root.)
tcp6 0 0 :::8080 :::* LISTEN - off (0.00/0/0)
tcp6 0 0 :::8081 :::* LISTEN - off (0.00/0/0)
udp 0 0 127.0.0.1:8082 0.0.0.0:* - off (0.00/0/0)
$ netstat -anop | grep ':8081'
(No info could be read for "-p": geteuid()=3003 but you should be root.)
tcp6 0 0 :::8081 :::* LISTEN - off (0.00/0/0)
$ netstat -anop | grep ':8082'
(No info could be read for "-p": geteuid()=3003 but you should be root.)
udp 0 0 127.0.0.1:8082 0.0.0.0:* - off (0.00/0/0)
$ netstat -anop | grep ':8083'
(No info could be read for "-p": geteuid()=3003 but you should be root.)
$ netstat -anop | grep ':8123'
(No info could be read for "-p": geteuid()=3003 but you should be root.)
やっぱりなにかいる、、、
なにこれ、、
admin から返事がきた
確認したところ、8080は全台のノードで管理システムが使用しているポートでした。cmd(Cluster Manager Daemon)というノードを集中管理するツールが使用しています
だそうです。
8081 と 8082 もそうなのか?
というわけで、8080以外のポートを使って立ち上げましょうという結論に。