LINUX.ORG.RU

86
Всего сообщений: 520

docker sshfs

Добрый день господа!

Помогите пожалуйста советом, может кто сталкивался... Вообщем имею несколько серваков на centos 7 с docker 19.03.

[lanadmin@mordred ~]$ cat /etc/*release
CentOS Linux release 7.7.1908 (Core)
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"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

CentOS Linux release 7.7.1908 (Core)
CentOS Linux release 7.7.1908 (Core)
[lanadmin@mordred ~]$ 
[lanadmin@mordred ~]$ docker -v
Docker version 19.03.2, build 6a30dfc
[lanadmin@mordred ~]$ 


Ковыряю volume с драйвером sshfs в docker. Зашел такой сюда - https://github.com/vieux/docker-volume-sshfs делаю как в примере...

[lanadmin@mordred ~]$ docker volume create --driver vieux/sshfs -o sshcmd=lanadmin@10.220.127.247:/home/test -o password=mypass sshvolume
[lanadmin@mordred ~]$  docker run -it -v sshvolume:/etc busybox ls /etc
Каталог на удаленном сервере с правами 777 и владельцем nobody:nobody(пробовал и юзера под которым логинюсь через sshfs)
[lanadmin@ganimed ~]$ ls -lah /home/test/
итого 8,0K
drwxrwxrwx. 2 nobody nobody 4,0K сен 21 23:02 .
drwxr-xr-x. 5 root   root   4,0K сен 21 18:48 ..
И когда я пытаюсь запустить контейнер он меня шлет вот с тако ошибкой:
docker: Error response from daemon: failed to copy file info for /var/lib/docker/plugins/518a1874166cf493dd0700d9efec1c3e2d7649cb4a560d44a2af1a6aa16f0526/propagated-mount/5cd59d97ef5e801349f7c06a8f2c113d: failed to chown /var/lib/docker/plugins/518a1874166cf493dd0700d9efec1c3e2d7649cb4a560d44a2af1a6aa16f0526/propagated-mount/5cd59d97ef5e801349f7c06a8f2c113d: lchown /var/lib/docker/plugins/518a1874166cf493dd0700d9efec1c3e2d7649cb4a560d44a2af1a6aa16f0526/propagated-mount/5cd59d97ef5e801349f7c06a8f2c113d: permission denied.
See 'docker run --help'.

Нооооо если я что нибудь положу в тот самый каталог

[lanadmin@ganimed ~]$ touch /home/test/notest.file
То все отлично работает
[lanadmin@mordred ~]$  docker run -it -v sshvolume:/etc busybox ls /etc
hostname     hosts        notest.file  resolv.conf
[lanadmin@mordred ~]$ 
[lanadmin@ganimed ~]$ ls -lah /home/test/
итого 8,0K
drwxrwxrwx. 2 nobody   nobody   4,0K сен 21 23:15 .
drwxr-xr-x. 5 root     root     4,0K сен 21 18:48 ..
-rwxr-xr-x. 1 lanadmin lanadmin    0 сен 21 23:15 hostname
-rwxr-xr-x. 1 lanadmin lanadmin    0 сен 21 23:15 hosts
-rw-rw-r--. 1 lanadmin lanadmin    0 сен 21 23:14 notest.file
-rwxr-xr-x. 1 lanadmin lanadmin    0 сен 21 23:15 resolv.conf

ЧЯНДТ?

 , ,

kovalev_94 ()

elasticsearch cluster в docker

делаю конфиг docker-compose.yml

version: '2'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:5.0.2
    restart: always
    container_name: elasticsearch
    environment:
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms2g -Xmx2g"
      - xpack.security.enabled=false
      - "discovery.zen.ping.unicast.hosts=ip1:9500,ip2:9500,ip3:9500"
      - "discovery.zen.minimum_master_nodes=2"
      - "path.repo=/backup/snapshot"
      - "cluster.name=docker"
      - "node.name=n1"
      - "network.host=0.0.0.0"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - "9400:9200"
      - "9500:9300"
    volumes:
      - esdata:/usr/share/elasticsearch/data
      - /backup/snapshot:/backup/snapshot

volumes:
  esdata:
    driver: local

пробую запускать docker-compose up -d и получаю ошибки

[2019-09-20T09:46:54,529][INFO ][o.e.x.m.e.Exporters      ] [n1] skipping exporter [default_local] as it isn't ready yet
[2019-09-20T09:46:54,529][ERROR][o.e.x.m.AgentService     ] [n1] exception when exporting documents
org.elasticsearch.xpack.monitoring.exporter.ExportException: exporters are either not ready or faulty
        at org.elasticsearch.xpack.monitoring.exporter.Exporters.export(Exporters.java:188) ~[x-pack-5.0.2.jar:5.0.2]
        at org.elasticsearch.xpack.monitoring.AgentService$ExportingWorker.run(AgentService.java:208) [x-pack-5.0.2.jar:5.0.2]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_92-internal]

 , ,

Garcia ()

Правильная работа с файлами контейнера в Docker

Всем привет. Сравнительно недавно работаю с докером и сейчас собираю проект мониторинга (prometheus+prometheus_bot+grafana+alertmanager+snmp_exporter+nginx) и не могу понять как правильно поступить. Мне необходимо, что бы все изменяемые файлы хранились в папке проекта, что бы в любой момент я мог забрать папку с проектом и развернуть ее на другом сервере с того места, с которого я выдернул проект со старого сервера, т.е. нужно что бы все изменяемые файлы приложений были по умолчанию в папке проекта. Обычно, когда эти файлы уже есть, я просто прописываю volume в docker-compose и они накладываются поверх созданных в контейнере, но как это сделать правильно, когда нужные файлы появляются во время билда контейнера из Dockerfile? Есть ли какая то возможность примонтировать папку из папки проекта в докер, что бы созданные им файлы сразу были там не используя /var/lib/docker/volumes/?

 

Sherman ()

gitlab кодировка

Добрый день, помогите разобраться с проблемой. Установил последнюю версию gitlab в docker контейнер, сделал фикс для поддержки 1251 по примеру https://github.com/xRayDev/gitlab_windows1251

При запуске задания такой результат:

Running with gitlab-runner 11.9.2 (fa86510e) on vrt1 uHYJLvJd
Using Shell executor...
Running on VIRT001...
Initialized empty Git repository in C:/g_run/builds/uHYJLvJd/0/mycompany/project1c/.git/
Clean repository
Fetching changes with git depth set to 50...
Created fresh repository.
fatal: Couldn't find remote ref refs/heads/feature/╨╜╨╛╨▓╨╛╨а╤Г╤Б╤Б╨║╨░╤П╨Т╨╡╤В╨║╨░
ERROR: Job failed: exit status 128

 , ,

voidzster ()

Docker volume: как выдать права на запись непривилегированному пользователю?

Пытаюсь запустить приложение не по дефолту от имени root, а от имени непривилегированного пользователя, но не могу разобраться как дать ему возможность писать в volume.

Создаю пользователя в контейнере так:

RUN adduser --disabled-password user && \
    mkdir /data && \
    chown -R user:user /data

USER user

В docker-compose подцепляю volume к контейнеру:

services:
  ...
  service_name:
    ...
    volumes:
      - storage-data:/data
  ...
volumes:
  storage-data:

И уточняю параметры volume’а в файле docker-compose.override.yml:

volumes:
  storage-data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: '/home/storage'

Внутри контейнера вижу что владельцем каталога /data являеться root, это поведение по умолчанию. Но как это исправить?

 

shooter93 ()

iptables подмена local ip (LAN) адреса

Итак, дано:

Asterisk server - 10.0.26.21
(docker-freepbx) внутри asterisk server - 172.18.0.2
User peers - 10.0.40.0/24

Итак, когда sip peer находится в сети 10.0.26.0/24 внутри докер контейнера ip пира отображается как положено 10.0.26.23, но если пир будет подключаться через 10.0.40.0/24, то внутри контейнера отображается ip адрес docker network bridge 172.18.0.1(сторона с таким ip не отправляет rtp пакеты), для прояснения —- СКРИН с docker —– СКРИН без docker (голый астериск)

Проблема именно в докере, потому что когда отрубить контейнер и запустить голый астериск на 10.0.26.21, то он нормально отображает ip пиров 10.0.40.20…etc. Их админ не хочет подменять ip адреса на циске. А freepbx нужен клиенту.

Вопрос: Могу ли я как-то на своей стороне (10.0.26.21) подменять ip адреса 10.0.40.0/24 на 10.0.26.0/24 и отдавать уже их докер контейнеру? В глубоком познании Iptables не силен, и не понял эти два правила, остальные ясны.

-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER

Правильно ли я понял, что мне надо сделать PREROUTING до -m addrtype --dst-type LOCAL и также отправить его в цепь DOCKER? Если не сложно покажите пример данной подмены, если она возможна.

 , , , ,

sanekmihailow ()

Как открыть CLI в контейнере Django в docker

Добрый день!

Запускаю так: docker run --rm --name web-app -p 8000:8000 -it Django

Контейнер запускается и работает как демон и выдает лог информацию. Можно ли мне каким-то образом подключиться к нему через CLI? Посмотреть/поправить файлы.

Спасибо

 ,

bard192 ()

Запуск VLC в докер-контейнере

Пишу образ для Докера, в котором будет установлен VLC для стримов. Докерфайл

FROM debian

RUN apt-get update && \
	apt-get install -y --no-install-recommends \
		vlc && \
	useradd -m vlc && \
	usermod -a -G audio,video vlc && \
	rm -rf /var/lib/apt/lists/*

COPY runstream.sh ./
COPY web_player/static/web_player/audio ./audio
COPY web_player/static/web_player/playlists ./playlists

USER vlc
WORKDIR /home/vlc
EXPOSE 8040
ENTRYPOINT ["/runstream.sh"]

runstream.sh

#!/bin/bash
cvlc /playlists/pl1.xspf --sout-keep --sout='#transcode{acodec=mp3,channels=2} :standard{mux=mp3,access=http,dst=:8040}'
[000055cecb4e28b0] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
[000055cecb4db890] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[000055cecb4db890] main interface error: no suitable interface module
[000055cecb447420] main libvlc error: interface "dbus,none" initialization failed
[000055cecb4fed20] main interface error: no suitable interface module
[000055cecb447420] main libvlc error: interface "globalhotkeys,none" initialization failed
[000055cecb4fed20] dummy interface: using the dummy interface module...                                                                                                                                              

По-моему странно то, что при запуске через cvlc (no-gui-режим) он просит х-server. Ну и ошибка с pulseaudio.

UPD: на базовом образе Ubuntu 16.04 или 18.04 то же самое

 ,

mafatik ()

docker iptables

Приветствую. Docker изменяет правила iptables на:

Chain INPUT (policy ACCEPT 190 packets, 16644 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DOCKER-USER  all  --  any    any     anywhere             anywhere            
    0     0 DOCKER-ISOLATION-STAGE-1  all  --  any    any     anywhere             anywhere            
    0     0 ACCEPT     all  --  any    docker0  anywhere             anywhere             ctstate RELATED,ESTABLISHED
    0     0 DOCKER     all  --  any    docker0  anywhere             anywhere            
    0     0 ACCEPT     all  --  docker0 !docker0  anywhere             anywhere            
    0     0 ACCEPT     all  --  docker0 docker0  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT 188 packets, 15972 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain DOCKER (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  !docker0 docker0  anywhere             172.17.0.2           tcp dpt:https
    0     0 ACCEPT     tcp  --  !docker0 docker0  anywhere             172.17.0.2           tcp dpt:http
    0     0 ACCEPT     tcp  --  !docker0 docker0  anywhere             172.17.0.2           tcp dpt:ssh

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DOCKER-ISOLATION-STAGE-2  all  --  docker0 !docker0  anywhere             anywhere            
    0     0 RETURN     all  --  any    any     anywhere             anywhere            

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  any    docker0  anywhere             anywhere            
    0     0 RETURN     all  --  any    any     anywhere             anywhere            

Chain DOCKER-USER (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  any    any     anywhere             anywhere       

По документации к docker создал /etc/docker/daemon.json с содержимым: { «iptables»: false } Теперь docker меняет iptables так:

Chain INPUT (policy ACCEPT 6411 packets, 3575K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DOCKER-USER  all  --  any    any     anywhere             anywhere            

Chain OUTPUT (policy ACCEPT 6877 packets, 1010K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain DOCKER-USER (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  any    any     anywhere             anywhere       

Как остановить этот беспредел?

 ,

Depher ()

Как бы подвисает перед выполнением команд

Привет!
Такое дело, установил в виртуалку Debian 10, host тоже Deb10. Потестить решение локально в виртуалке.
Вроде бы все хорошо, но вот начал настраивать docker, так иногда консоль как бы задумывается после нажатия enter и выполнением команд.
Команды пока связанные с docker.
Например docker-compose logs nginx, или docker-compose stop. При этом зависание может быть редким, ну там одно на 10 или каждое первое. И сама длительность зависания от пары секунд до бесконечности и поможет только ctrl+c.
Что это? Как искать причину?
Зависание никак не отражается на системе, проц не грузит, другие процессы работают.

 ,

Spider55 ()

Докер для одной команды ...

Хочется сделать докер для одной команды. Ну например чтобы запускался ffmpeg: ( вот стандартый пример докера): https://hub.docker.com/r/jrottenberg/ffmpeg. Он работает но на каждый запуск само собой возникает новый контейнер. Можно этого избежать ? Т е я хочу запускать какую-то линуксовую команду в своем бинарном окружении ...

 ,

Jopich1 ()

А как организовывать работу с podman/docker? В административном плане, если можно так выразиться?

Вот я создал Dockerfile:

FROM rhel7
RUN groupadd --system --gid 501 transmission && \
    useradd --system --uid 501 --gid 501 --home-dir /var/lib/transmission --shell /sbin/nologin \
        --comment "transmission daemon account" transmission && \
    yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && \
    yum -y install transmission-daemon && \
    yum clean all
COPY --chown=transmission:transmission settings.json /var/lib/transmission/.config/transmission-daemon/settings.json
RUN chmod 600 /var/lib/transmission/.config/transmission-daemon/settings.json
EXPOSE 51413/tcp 51413/udp 9091/tcp
USER transmission
CMD ["/usr/bin/transmission-daemon", "-f"]

построил свой образ: podman build --tag=transmission .

Дальше мне нужно его запустить, чтобы получился контейнер с определённым именем. Т.е. я пишу

podman run --name transmission \
    --publish 192.168.1.21:51413:51413/tcp \
    --publish 192.168.1.21:51413:51413/udp  \
    --publish 192.168.1.21:9091:9091/tcp \
    --volume /srv/downloads:/var/lib/transmission/Downloads \
    --security-opt label=disable \
    transmission
вот такая страшная команда. Создался контейнер, запустился. Стопаю по ctrl+c. Пишу systemd unit:
[Unit]
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/bin/podman start -a transmission
ExecStop=/usr/bin/podman stop transmission

[Install]
WantedBy=multi-user.target

Вроде всё понятно. Но меня смущает эта страшенная команда docker run с кучей параметров. Я её засунул в скрипт из одной строчки, но как-то тупо это. Есть ли правильные способы засунуть эту конфигурацию в конфиг?

 , ,

Legioner ()

Nginx и произвольное количество back-end'ов в докере

Привет, ЛОРчане. Собсно вопрос состоит в том, как это реализовать? Нашел вот это https://github.com/jwilder/nginx-proxy, но как то странно это все выглядит. Возможно такой функционал есть непосредственно в nginx? Подскажите плиз куда копнуть.

 , ,

Sherman ()

Nginx frontend docker freepbx backend

Хочу начать потихоньку осваивать зверя freepbx для общего развития. Так как был уже случай с ним связанный (навыки астериска не сильно там пригодились).

Так вот у меня проблема с upstream nginx. Он как-то неправильно проксирует. Наверное есть какой-то особый заголовок который нужно передать, но мне о нем неизвестно.

Схема такая:

Internet -> Nginx Reverse [80 порт] -> docker(freepbx) [9972 порт]
Nginx и докер на одной машине
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3552/nginx -g daemo
tcp6       0      0 :::9972                 :::*                    LISTEN      13697/docker-proxy
f493867c0e56        mima84/docker-freepbx        "/sbin/my_init"          10 hours ago        Up 10 hours         0.0.0.0:5060->5060/udp, 0.0.0.0:5160-5161->5160-5161/udp, 0.0.0.0:10000-10050->10000-10050/udp, 0.0.0.0:9972->8082/tcp   freepbx

nginx conf

upstream tofreepbx {                                               
  server 127.0.0.1:9972;                                           
}                                                                  
                                                                   
server {                                                           
    listen       80;                                               
    server_name  freepbx.local.com;                                
                                                                   
  location / {                                                     
    proxy_pass http://tofreepbx;                                   
    #proxy_pass http://127.0.0.1:9972;                              
    #proxy_redirect     off;                               
    #proxy_set_header   Host $host;                        
    #proxy_http_version 1.1;                                       
    #proxy_set_header Upgrade $http_upgrade;                       
    #proxy_set_header Connection "";                               
    #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  }                                                                
                                                                   
                                                                   
}

если проксировать без Upstream сразу на proxy_pass http://127.0.0.1:9972; то нормально проксирует.

* Rebuilt URL to: http://freepbx.local.com/
*   Trying 127.0.0.1...
* Connected to freepbx.local.com (127.0.0.1) port 80 (#0)
> HEAD / HTTP/1.1
> Host: freepbx.local.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 302 Found
HTTP/1.1 302 Found
< Server: nginx
Server: nginx
< Date: Thu, 11 Jul 2019 18:58:47 GMT
Date: Thu, 11 Jul 2019 18:58:47 GMT
< Content-Type: text/html; charset=UTF-8
Content-Type: text/html; charset=UTF-8
< Connection: keep-alive
Connection: keep-alive
< Location: /admin
Location: /admin

<
* Connection #0 to host freepbx.local.com left intact
* Issue another request to this URL: 'http://freepbx.local.com/admin'
* Found bundle for host freepbx.local.com: 0x55bc340be8e0 [can pipeline]
* Re-using existing connection! (#0) with host freepbx.local.com
* Connected to freepbx.local.com (127.0.0.1) port 80 (#0)
> HEAD /admin HTTP/1.1
> Host: freepbx.local.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
HTTP/1.1 301 Moved Permanently
< Server: nginx
Server: nginx
< Date: Thu, 11 Jul 2019 18:58:47 GMT
Date: Thu, 11 Jul 2019 18:58:47 GMT
< Content-Type: text/html; charset=iso-8859-1
Content-Type: text/html; charset=iso-8859-1
< Location: http://freepbx.local.com/admin/
Location: http://freepbx.local.com/admin/
< Connection: keep-alive
Connection: keep-alive

<
* Connection #0 to host freepbx.local.com left intact
* Issue another request to this URL: 'http://freepbx.local.com/admin/'
* Found bundle for host freepbx.local.com: 0x55bc340be8e0 [can pipeline]
* Re-using existing connection! (#0) with host freepbx.local.com
* Connected to freepbx.local.com (127.0.0.1) port 80 (#0)
> HEAD /admin/ HTTP/1.1
> Host: freepbx.local.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 302 Found
HTTP/1.1 302 Found
< Server: nginx
Server: nginx
< Date: Thu, 11 Jul 2019 18:58:47 GMT
Date: Thu, 11 Jul 2019 18:58:47 GMT
< Content-Type: text/html; charset=UTF-8
Content-Type: text/html; charset=UTF-8
< Connection: keep-alive
Connection: keep-alive
< Location: config.php
Location: config.php

<
* Connection #0 to host freepbx.local.com left intact
* Issue another request to this URL: 'http://freepbx.local.com/admin/config.php'
* Found bundle for host freepbx.local.com: 0x55bc340be8e0 [can pipeline]
* Re-using existing connection! (#0) with host freepbx.local.com
* Connected to freepbx.local.com (127.0.0.1) port 80 (#0)
> HEAD /admin/config.php HTTP/1.1
> Host: freepbx.local.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Server: nginx
Server: nginx
< Date: Thu, 11 Jul 2019 18:58:47 GMT
Date: Thu, 11 Jul 2019 18:58:47 GMT
< Content-Type: text/html; charset=utf-8
Content-Type: text/html; charset=utf-8
< Connection: keep-alive
Connection: keep-alive
< Last-Modified: Thu, 11 Jul 2019 18:58:47 GMT
Last-Modified: Thu, 11 Jul 2019 18:58:47 GMT
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Pragma: no-cache
Pragma: no-cache
< Set-Cookie: PHPSESSID=mkshe46aojoimf9eidu6i1v853; expires=Sat, 10-Aug-2019 18:58:47 GMT; Max-Age=2592000; path=/
Set-Cookie: PHPSESSID=mkshe46aojoimf9eidu6i1v853; expires=Sat, 10-Aug-2019 18:58:47 GMT; Max-Age=2592000; path=/
< Set-Cookie: lang=en_US
Set-Cookie: lang=en_US

<
* Connection #0 to host freepbx.local.com left intact

Если с Upstream, то так:

* Rebuilt URL to: http://freepbx.local.com/
*   Trying 127.0.0.1...
* Connected to freepbx.local.com (127.0.0.1) port 80 (#0)
> HEAD / HTTP/1.1
> Host: freepbx.local.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 302 Found
HTTP/1.1 302 Found
< Server: nginx
Server: nginx
< Date: Thu, 11 Jul 2019 13:59:02 GMT
Date: Thu, 11 Jul 2019 13:59:02 GMT
< Content-Type: text/html; charset=UTF-8
Content-Type: text/html; charset=UTF-8
< Connection: keep-alive
Connection: keep-alive
< Location: /admin
Location: /admin

<
* Connection #0 to host freepbx.local.com left intact
* Issue another request to this URL: 'http://freepbx.local.com/admin'
* Found bundle for host freepbx.local.com: 0x564db87908e0 [can pipeline]
* Re-using existing connection! (#0) with host freepbx.local.com
* Connected to freepbx.local.com (127.0.0.1) port 80 (#0)
> HEAD /admin HTTP/1.1
> Host: freepbx.local.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
HTTP/1.1 301 Moved Permanently
< Server: nginx
Server: nginx
< Date: Thu, 11 Jul 2019 13:59:02 GMT
Date: Thu, 11 Jul 2019 13:59:02 GMT
< Content-Type: text/html; charset=iso-8859-1
Content-Type: text/html; charset=iso-8859-1
< Connection: keep-alive
Connection: keep-alive
< Location: http://tofreepbx:8082/admin/
Location: http://tofreepbx:8082/admin/

<
* Connection #0 to host freepbx.local.com left intact
* Issue another request to this URL: 'http://tofreepbx:8082/admin/'
* Could not resolve host: tofreepbx
* Closing connection 1
curl: (6) Could not resolve host: tofreepbx

 , , , ,

sanekmihailow ()

Нужно ли виртуализировать vt-x для линукса, в котором крутится докер?

Добрый день.

Использую связку Windows (host) -> Debian (VMware) -> Docker. В UEFI включен VT-x, соответственно на хосте тоже. А вот на вопрос включать ли виртуализацию vt-x (Virtualize Intel VT-x/EPT or AMD-V/RVI) в вмвейре ответы разнятся.

Как правильно в моем случае? Как правильно вообще? Почему?

 , ,

qwertynobody ()

Недоступен порт MySQL между серверами в одной подсети

Доброго времени суток.

Есть два сервера: 1). 192.168.202.5 netmask 255.255.255.0 2). 192.168.202.32 netmask 255.255.255.0

На втором (192.168.202.32) поднят докер контейнер с MySQL через docker-compose:

docker ps
    CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                   PORTS                                                   NAMES
    dec33e6c66fe        mysql/mysql-cluster   "/entrypoint.sh mysq…"   2 hours ago         Up 2 hours (healthy)     1186/tcp, 2202/tcp, 33060/tcp, 0.0.0.0:3306->3306/tcp   ndb_ndb_mysqld_1
    56ccfd399288        mysql/mysql-cluster   "/entrypoint.sh ndbd"    2 hours ago         Up 2 hours (unhealthy)   1186/tcp, 2202/tcp, 3306/tcp, 33060/tcp                 ndb_ndb_data_node_1_1
    1f6a2f2db72c        mysql/mysql-cluster   "/entrypoint.sh ndb_…"   2 hours ago         Up 2 hours (unhealthy)   2202/tcp, 3306/tcp, 0.0.0.0:1186->1186/tcp, 33060/tcp   ndb_ndb_mgmd_1

netstat -nta:

netstat -nta
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
    tcp        0      0 192.168.202.32:22       10.40.20.156:34458      ESTABLISHED
    tcp        0     36 192.168.202.32:22       10.40.20.156:35210      ESTABLISHED
    tcp6       0      0 :::3306                 :::*                    LISTEN     
    tcp6       0      0 :::22                   :::*                    LISTEN     
    tcp6       0      0 :::1186                 :::*                    LISTEN

Порт 3306 слушается. На втором сервере (192.168.202.32) я пробую:

telnet 192.168.202.32 3306
Trying 192.168.202.32...
Connected to 192.168.202.32.
Escape character is '^]'.
`
5.7.25-ndb-7.6.9-cluster-gpl

Порт доступен и все ок. Но почему-то с первого сервера (192.168.202.5) это не работает:

telnet 192.168.202.32 3306
Trying 192.168.202.32...
telnet: connect to address 192.168.202.32: Connection timed out
[oracle@host-192-168-202-5 ~]$ 

Я не могу понять почему это происходит. При этом с первого на второй 22 порт доступен и все ОК. Было сделано:

  1. sudo iptables -F на обоих серверах. Не помогло
  2. В my.cnf прописано bind-adresses=0.0.0.0

Подскажите куда копать дальше, какие логи смотреть, не понимаю кто блокирует соединения?

Я использую OracleLinux7 на обоих серверах.

uname -a
Linux host-192-168-202-5 3.8.13-118.6.1.el7uek.x86_64

 , , ,

romask ()

Монтирование томов в Docker с сохранением данных из образа

Приветствую всех! Столкнулся с такой задачей: необходимо при создании контейнера сохранять файлы из образа на хост при условии что монтируемая папка пуста. Например так же работает образ mongodb (из документации).

docker run --name some-mongo -v /my/own/datadir:/data/db -d mongo
Данную конструкцию протестировал (работаю из под Windows), работает отлично, база сохраняется на хост машине и все в порядке. Делая попытки на своем образе провернуть подобную схему, получаю пустую папку в контейнере, данные из образа бесследно перекрываются. Делал различные тесты c Dockerfile и VOLUME, результат всегда один и тот же. Пример Dockerfile:
FROM ubuntu
RUN mkdir /myfolder
RUN echo "hello world" > /myfolder/test
VOLUME /myfolder
Может быть кто то подскажет, в чем может быть проблема?

 ,

rus312 ()

Велосипед починили. Теперь линуксоиды тоже могут в .Net Core через SBCL

Значит так, сегодня починили баг который не давал SBCL работать с подгруженным в него .Net Core на Линуксе.

(напоминаю, что я делаю библиотеку которая позволяет дергать дотнет-кор из лиспа, и наоборот https://github.com/Lovesan/bike)

Но кроме того, я уже некоторое время собираю докер имаджи, которые содержат в себе реализацию лиспа и .Net Core SDK:

https://cloud.docker.com/u/love5an/repository/docker/love5an/dotnet-core-sdk-...

Пока поддерживаются реализации SBCL и Clozure CL(не путать с Clojure).

В основном для линукса, но также есть SBCL в контейнере Windows nanoserver.

Собираю сам, под AMD64, но исходники докерфайлов открыты, можете брать и модифицировать если надо:

https://github.com/Lovesan/dotnet-core-sdk-common-lisp-docker

Даешь лисп! Херак херак и в продакшн!

 , , , ,

lovesan ()

Docker сетевое взаимодействие между контейнерами

Долгое время пользуюсь https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion для всех своих сервисов И радости моей не было предела, и в кишки я не влезал, в общих чертах восхитился системой и пользовался. Пока не захотелось мне поднять у себя jupyter notebook который при прочих равных на отрез отказывался открываться из за nginx-proxy-companion с ошибкой 503. Стал копать, понял, что нет у меня достаточного понимания сетевого взаимодействия. Из nginx контейнера не могу курлом вытащить из контейнера юпитера.

Следуя инженерному подходу решил избавится от всего лишнего, вооружился netcat. И воспроизвёл поведение которое не укладывается у меня в голове как валидное. Что я делаю не так?

Шаг 1 Создал сетку внутри докера :

docker network create myownnetwork

Шаг 2 Запустил контейнер который слушает порт:

$ docker rm container1 ; docker run --name container1 --network myownnetwork ubuntu /bin/bash -c 'apt update && apt install -y netcat net-tools && ifconfig && nc -l -vvv 8080;'
...
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.0.2  netmask 255.255.0.0  broadcast 172.18.255.255
        ether 02:42:ac:12:00:02  txqueuelen 0  (Ethernet)
        RX packets 4149  bytes 17361595 (17.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3951  bytes 336864 (336.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 6  bytes 674 (674.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 674 (674.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

8080: inverse host lookup failed: Unknown host
listening on [any] 46581 ...

Шаг 3 Запустил контейнер который подключается к порту:

docker rm container2 ; docker run --name container2 --network myownnetwork ubuntu /bin/bash -c 'apt update && apt install -y netcat net-tools && ifconfig && nc 172.18.0.2 8080'
...
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.0.3  netmask 255.255.0.0  broadcast 172.18.255.255
        ether 02:42:ac:12:00:03  txqueuelen 0  (Ethernet)
        RX packets 3042  bytes 17288445 (17.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2742  bytes 203702 (203.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 6  bytes 674 (674.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 674 (674.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(UNKNOWN) [172.18.0.2] 8080 (?) : Connection refused

Почему эти 2 контейнера не могут друг с другом общаться? Вроде в одной сети, файрволов внитри докеровской убунты нет.

 , , ,

letitbe ()

тестирование rest-серевиса через k8s.

Коллеги, вот чего мне хочется:
Выкладываю на git некий сценарий стрес-теста.
Запускаю некий контейнер, где в качестве input параметра показываю этот самый .git
Иду на docker_host_ip/grafana и смотрю красивый выхлоп c mps и success/error.
все это закидываю на кубер и могу грузить веб-сервис еще больше.
есть что-то готовое для этого ?

 , ,

dada ()