Я запускаю локальный контейнер docker как среду для запуска моих приложений и использую возможности удаленного хоста CLion для управления цепочкой инструментов. Мои приложения взаимодействуют через определенный сетевой интерфейс c через различные порты и IP-адреса.
В идеальном мире я мог бы запускать свои приложения локально, а затем также запускать одно в контейнере docker через CLion и общаться с локально запущенными приложениями.
Я знаю, что могу запустите контейнер docker с помощью --network=host
, но это, похоже, удаляет возможность S SH в контейнер docker, что является необходимым условием для использования CLion и docker. Есть ли способ сохранить и то, и другое? Использовать сеть хоста, но также включить s sh в контейнер docker?
Фрагмент из моего файла Docker, который настраивает агент S SH
########################################################
# Remote debugging and login in
########################################################
RUN mkdir /var/run/sshd
RUN echo 'root:root' | chpasswd
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
# 22 for ssh server. 7777 for gdb server.
EXPOSE 22 7777
RUN useradd -ms /bin/bash debugger
RUN echo 'debugger:pwd' | chpasswd
CMD ["/usr/sbin/sshd", "-D"]