Докер: «Сеть недоступна» внутри контейнера - PullRequest
0 голосов
/ 30 июня 2018

Я хочу запустить sshd iside Docker и выполнить несколько команд ssh для создания образа. Вот мой Dockerfile:

FROM centos:7

RUN yum install -y which tar more util-linux-ng passwd openssh-clients openssh-server net-tools iproute; yum clean all

RUN mkdir /var/run/sshd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile

RUN /usr/sbin/sshd -D &

RUN ssh localhost echo Hello

И я получаю ошибку здесь:

Step 13/13 : RUN ssh localhost echo Hello
 ---> Running in e40f2e1cc39e
ssh: connect to host localhost port 22: Network is unreachable
The command '/bin/sh -c ssh localhost echo Hello' returned a non-zero code: 255

И ssh 127.0.0.1 возвращает:

ssh: connect to host 127.0.0.1 port 22: Connection refused

Аналогичное поведение с ping и wget. Файл контейнера / etc / hosts:

127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2      0762a183aaa3

Есть идеи, что здесь происходит?

1 Ответ

0 голосов
/ 03 июля 2018

Узнайте, что команда RUN dockerfile теперь разрешает "&", поэтому фоновый процесс sshd не запускается. Я создаю скрипт .sh и запускаю из него / usr / sbin / sshd -D &.

...