Docker версии 1.13.1, Docker Swarm, jwilder/nginx-proxy не запускается в качестве службы докера
Я пытаюсь настроить кластер Elasticsearch на Docker, следуя этому руководству: https://sematext.com/blog/2016/12/12/docker-elasticsearch-swarm/
Но я постоянно получаю сообщение об ошибке /tmp/docker.sock после создания службы jwilder/nginx-proxy. Приведенный ниже фрагмент консоли взят из недавно установленного и обновленного CentOS7. Я установил Docker через Yum, следуя инструкциям здесь: https://docs.docker.com/engine/installation/linux/centos/
[root@centos7]# docker -v
Docker version 1.13.1, build 092cba3
[root@centos7]#
[root@centos7]# docker service create --mode global \
> --name proxy -p 80:80 \
> --network elasticsearch-frontend \
> --network elasticsearch-backend \
> --mount type=bind,bind-propagation=rshared,src=/var/run/docker.sock,target=/tmp/docker.sock:ro \
> jwilder/nginx-proxy
xbhj4rzjyuu0k8maf1ha5fmgs
[root@centos7]# docker service ls
ID NAME MODE REPLICAS IMAGE
xbhj4rzjyuu0 proxy global 0/1 jwilder/nginx-proxy:latest
[root@centos7]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7ba303e0f8b6 jwilder/nginx-proxy@sha256:9a2d63aad9068f817c705965f41f2f32fa0bbef6b217ae5c9b2340ef23e3dcba "/app/docker-entry..." 2 seconds ago Created proxy.kifcc5gbdcxz5ixsbx7sl1cv8.zuizhtt7q94nluuudlgjgy1yi
2fe655a93aa4 jwilder/nginx-proxy@sha256:9a2d63aad9068f817c705965f41f2f32fa0bbef6b217ae5c9b2340ef23e3dcba "/app/docker-entry..." 10 seconds ago Exited (1) 3 seconds ago proxy.kifcc5gbdcxz5ixsbx7sl1cv8.baqn1204spbw5v6qxx6qjx327
7894fd0e1dee jwilder/nginx-proxy@sha256:9a2d63aad9068f817c705965f41f2f32fa0bbef6b217ae5c9b2340ef23e3dcba "/app/docker-entry..." 18 seconds ago Exited (1) 11 seconds ago proxy.kifcc5gbdcxz5ixsbx7sl1cv8.6s9u0q0y1kjelebszheius2es
51840cca0d32 jwilder/nginx-proxy@sha256:9a2d63aad9068f817c705965f41f2f32fa0bbef6b217ae5c9b2340ef23e3dcba "/app/docker-entry..." 26 seconds ago Exited (1) 19 seconds ago proxy.kifcc5gbdcxz5ixsbx7sl1cv8.wlwy723ts9kw00sgyu3s5f985
d52fd18567a9 jwilder/nginx-proxy@sha256:9a2d63aad9068f817c705965f41f2f32fa0bbef6b217ae5c9b2340ef23e3dcba "/app/docker-entry..." 34 seconds ago Exited (1) 27 seconds ago proxy.kifcc5gbdcxz5ixsbx7sl1cv8.wa5jk9xnly1tdxpbvonnjmoty
[root@centos7]# docker logs 2fe655a93aa4
ERROR: you need to share your Docker host socket with a volume at /tmp/docker.sock
Typically you should run your jwilder/nginx-proxy with: `-v /var/run/docker.sock:/tmp/docker.sock:ro`
See the documentation at http://git.io/vZaGJ
[root@centos7]#
Контейнер jwilder/nginx-proxy работает при запуске в виде отдельного контейнера, используя опцию -v для монтирования docker.sock.
Я искал в Google (документы Docker, gw jwilder/nginx-proxy) в поисках причин, вызывающих это, и ничего не нашел. Кто-нибудь видит что-то не так? Я новичок в докере, так что, возможно, я упускаю что-то легкое.
Заранее спасибо!:-)
1 ответ
Вместо того, чтобы делать монтирование только для чтения /var/run/docker.sock
в /tmp/docker.sock
Вы делаете гору из /var/run/docker.sock
в /tmp/docker.sock:ro
следовательно приложение плачет.
Чтобы исправить это, сделайте небольшую модификацию. Заменить...
--mount type=bind,bind-propagation=rshared,src=/var/run/docker.sock,target=/tmp/docker.sock:ro
...с:
--mount type=bind,bind-propagation=rshared,src=/var/run/docker.sock,target=/tmp/docker.sock,ro=1
Из документации:
readonly или ro: Механизм монтирует привязки и тома для чтения и записи, если только опция readonly не предоставляется при монтировании привязки или тома. При значении true или 1 или без значения привязка или том монтируются только для чтения. При значении false или 0 привязка или том монтируется для чтения-записи.