docker图像-centos 7>;找不到ssh服务
我在我的ubuntu机器上安装了docker image-centos 7。但是找不到ssh服务。所以我不能运行这项服务docker图像-centos 7>;找不到ssh服务,docker,ssh,centos,Docker,Ssh,Centos,我在我的ubuntu机器上安装了docker image-centos 7。但是找不到ssh服务。所以我不能运行这项服务 [root@990e92224a82 /]# yum install openssh-server openssh-clients Loaded plugins: fastestmirror, ovl Loading mirror speeds from cached hostfile * base: mirror.dhakacom.com * extras: mirro
[root@990e92224a82 /]# yum install openssh-server openssh-clients
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
* base: mirror.dhakacom.com
* extras: mirror.dhakacom.com
* updates: mirror.dhakacom.com
Package openssh-server-6.6.1p1-31.el7.x86_64 already installed and latest version
Package openssh-clients-6.6.1p1-31.el7.x86_64 already installed and latest version
Nothing to do
[root@990e92224a82 /]# ss
ssh ssh-agent ssh-keygen sshd ssltap
ssh-add ssh-copy-id ssh-keyscan sshd-keygen
如何远程登录docker image?您必须在Dockerfile上执行以下说明
RUN yum install -y sudo wget telnet openssh-server vim git ncurses-term
RUN useradd your_account
RUN mkdir -p /home/your_account/.ssh && chown -R your_account /home/your_account/.ssh/
# Create known_hosts
RUN touch /home/your_account/.ssh/known_hosts
COPY files/authorized_keys /home/your_account/.ssh/
COPY files/config /home/your_account/.ssh/
COPY files/pam.d/sshd /etc/pam.d/sshd
RUN touch /home/your_account/.ssh/environment
RUN chown -R your_account /home/your_account/.ssh
RUN chmod 400 -R /home/your_account/.ssh/*
RUN chmod 700 -R /home/your_account/.ssh/known_hosts
RUN chmod 700 /home/your_account/.ssh/environment
# Enable sshd
COPY files/sshd_config /etc/ssh/
RUN ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
# Add a account into sudoers and this account doesn't need to type his password
COPY files/sudoers /etc/
COPY files/start.sh /root/
我必须删除文件/etc/pam.d/sshd上的“pam_nologin.so”,因为当我将openssh服务器的版本升级到openssh-server-6.6.1p1-31.el7时,pam_nologin.so将不允许任何用户远程登录,即使文件/etc/nologin不存在
start.sh
#!/bin/bash
/usr/sbin/sshd -E /tmp/sshd.log
启动centos容器
- docker run-d-t-p$(sshPort):22--name$(containerName)$(imageName)/bin/bash
- docker exec-d$(containerName)bash-c“sh/root/start.sh”
- ssh$(Docker ip)$(sshPort)
- 您必须在Dockerfile上执行以下说明
RUN yum install -y sudo wget telnet openssh-server vim git ncurses-term
RUN useradd your_account
RUN mkdir -p /home/your_account/.ssh && chown -R your_account /home/your_account/.ssh/
# Create known_hosts
RUN touch /home/your_account/.ssh/known_hosts
COPY files/authorized_keys /home/your_account/.ssh/
COPY files/config /home/your_account/.ssh/
COPY files/pam.d/sshd /etc/pam.d/sshd
RUN touch /home/your_account/.ssh/environment
RUN chown -R your_account /home/your_account/.ssh
RUN chmod 400 -R /home/your_account/.ssh/*
RUN chmod 700 -R /home/your_account/.ssh/known_hosts
RUN chmod 700 /home/your_account/.ssh/environment
# Enable sshd
COPY files/sshd_config /etc/ssh/
RUN ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
# Add a account into sudoers and this account doesn't need to type his password
COPY files/sudoers /etc/
COPY files/start.sh /root/
我必须删除文件/etc/pam.d/sshd上的“pam_nologin.so”,因为当我将openssh服务器的版本升级到openssh-server-6.6.1p1-31.el7时,pam_nologin.so将不允许任何用户远程登录,即使文件/etc/nologin不存在
start.sh
#!/bin/bash
/usr/sbin/sshd -E /tmp/sshd.log
启动centos容器
- docker run-d-t-p$(sshPort):22--name$(containerName)$(imageName)/bin/bash
- docker exec-d$(containerName)bash-c“sh/root/start.sh”
- ssh$(Docker ip)$(sshPort)
ENTRYPOINT /usr/sbin/sshd -E /tmp/sshd.log && /bin/bash
然后,您只需运行:
docker run -d -p -t $(sshPort):22 --name $(containerName) $(imageName) /bin/bash
扩展到@puritys
您可以在Dockerfile中执行此操作
文件中的最后一个:
ENTRYPOINT /usr/sbin/sshd -E /tmp/sshd.log && /bin/bash
然后,您只需运行:
docker run -d -p -t $(sshPort):22 --name $(containerName) $(imageName) /bin/bash
sshd
在那里,但是为什么您需要ssh到您的容器?我知道sshd在那里。但是找不到任何与该服务相关的东西。我想远程登录docker容器以运行AnsibleGeneraly,尝试。如果您正在使用容器中的ansible执行某些操作,是否可以在映像构建期间执行?你可以通过sshd来完成吗?但是为什么你需要ssh到你的容器呢?我知道sshd在那里。但是找不到任何与该服务相关的东西。我想远程登录docker容器以运行AnsibleGeneraly,尝试。如果您正在使用容器中的ansible执行某些操作,是否可以在映像构建期间执行?你能通过吗?这里是什么文件?这里是什么文件?