为 ssh 连接到 docker 容器定义的密码
password define for ssh connection into docker container
我想通过 SSH 连接到我的 docker 容器。为此,我使用此 Docker 文件和此命令 docker build -t test/toto .
:
创建了图像
FROM ubuntu:14.04.4
MAINTAINER Darkomen <darkomen@xxx.com>
# Let the conatiner know that there is no tty
ENV DEBIAN_FRONTEND noninteractive
RUN sudo apt-get -y update
RUN sudo apt-get -y install software-properties-common python-software-properties
RUN sudo add-apt-repository main
RUN sudo add-apt-repository universe
RUN sudo add-apt-repository restricted
RUN sudo add-apt-repository multiverse
RUN sudo apt-get -y update
#RUN sudo apt-get -y install linux-headers-$(uname -r) build-essential
RUN sudo apt-get -y install linux-headers-generic build-essential
RUN apt-get -y install zlib1g-dev libssl-dev libreadline-gplv2-dev
RUN apt-get -y install curl unzip
RUN apt-get -y install software-properties-common
RUN apt-get -y install gnupg2
# others tools
RUN sudo apt-get -y install nano
RUN sudo apt-get -y install vim
RUN sudo apt-get -y install aptitude
RUN sudo apt-get -y install git
RUN sudo apt-get -y install openjdk-7-jdk
RUN sudo apt-get -y install whois
RUN sudo apt-get -y install dos2unix
# SSH
RUN apt-get -y install openssh-server
RUN mkdir -p /var/run/sshd
RUN echo 'root:screencast' |chpasswd
EXPOSE 22
CMD /usr/sbin/sshd -D
接下来我用这个命令用这个图像启动了我的容器:docker run test/toto -p 42000:22
我的容器 运行 完美,我启动这个命令进入这个容器:docker run -dt -p 42000:22 test/toto
现在我的 docker-机器和 docker 容器(基于我的 docker 文件)运行。我可以看到,因为 docker ps -a
告诉我:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a28ad08fd393 test/toto "/bin/sh -c '/usr/sbi" 22 minutes ago Up 22 minutes 0.0.0.0:42000->22/tcp admiring_feynman
为了在我的容器中连接,我启动了这个命令:ssh root@192.168.99.100 -p 42000
但是它告诉我输入密码。我尝试了很多东西,但没有尝试 运行。我在创建和配置过程中忘记了什么 docker ?
192.168.99.100 是 return 通过 docker-machine inspect
命令
的 IP
我还尝试将 root 密码更改为我的容器并重复 ssh 命令访问。但没有任何改变。我无法连接到容器。
技术资料:
- OS : windows 7 专业版
- Docker 版本:1.12.2 build bb80604
- Docker系统:docker工具箱(基于VirtualBox)
- VirtualBox 版本:5.0.14r105127
您需要为您的 sshd 配置 root 登录:
手动:
vi /etc/ssh/sshd_config
将PermitRootLogin without-password
更改为:
PermitRootLogin yes
然后:
service ssh restart
现在再试一次。如果一切顺利,您需要更改 docker 文件以在构建步骤中进行此更改。
用于创建 SSH 连接并将其公开到容器中的 Dockerfile 脚本:
# SSH
RUN apt-get -y install openssh-server
RUN mkdir -p /var/run/sshd
# authorize SSH connection with root account
RUN sed -i '/^#/!s/PermitRootLogin .*/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sudo service ssh restart
# change password root
RUN echo "root:docker"|chpasswd
我想通过 SSH 连接到我的 docker 容器。为此,我使用此 Docker 文件和此命令 docker build -t test/toto .
:
FROM ubuntu:14.04.4
MAINTAINER Darkomen <darkomen@xxx.com>
# Let the conatiner know that there is no tty
ENV DEBIAN_FRONTEND noninteractive
RUN sudo apt-get -y update
RUN sudo apt-get -y install software-properties-common python-software-properties
RUN sudo add-apt-repository main
RUN sudo add-apt-repository universe
RUN sudo add-apt-repository restricted
RUN sudo add-apt-repository multiverse
RUN sudo apt-get -y update
#RUN sudo apt-get -y install linux-headers-$(uname -r) build-essential
RUN sudo apt-get -y install linux-headers-generic build-essential
RUN apt-get -y install zlib1g-dev libssl-dev libreadline-gplv2-dev
RUN apt-get -y install curl unzip
RUN apt-get -y install software-properties-common
RUN apt-get -y install gnupg2
# others tools
RUN sudo apt-get -y install nano
RUN sudo apt-get -y install vim
RUN sudo apt-get -y install aptitude
RUN sudo apt-get -y install git
RUN sudo apt-get -y install openjdk-7-jdk
RUN sudo apt-get -y install whois
RUN sudo apt-get -y install dos2unix
# SSH
RUN apt-get -y install openssh-server
RUN mkdir -p /var/run/sshd
RUN echo 'root:screencast' |chpasswd
EXPOSE 22
CMD /usr/sbin/sshd -D
接下来我用这个命令用这个图像启动了我的容器:docker run test/toto -p 42000:22
我的容器 运行 完美,我启动这个命令进入这个容器:docker run -dt -p 42000:22 test/toto
现在我的 docker-机器和 docker 容器(基于我的 docker 文件)运行。我可以看到,因为 docker ps -a
告诉我:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a28ad08fd393 test/toto "/bin/sh -c '/usr/sbi" 22 minutes ago Up 22 minutes 0.0.0.0:42000->22/tcp admiring_feynman
为了在我的容器中连接,我启动了这个命令:ssh root@192.168.99.100 -p 42000
但是它告诉我输入密码。我尝试了很多东西,但没有尝试 运行。我在创建和配置过程中忘记了什么 docker ?
192.168.99.100 是 return 通过 docker-machine inspect
命令
我还尝试将 root 密码更改为我的容器并重复 ssh 命令访问。但没有任何改变。我无法连接到容器。
技术资料:
- OS : windows 7 专业版
- Docker 版本:1.12.2 build bb80604
- Docker系统:docker工具箱(基于VirtualBox)
- VirtualBox 版本:5.0.14r105127
您需要为您的 sshd 配置 root 登录:
手动:
vi /etc/ssh/sshd_config
将PermitRootLogin without-password
更改为:
PermitRootLogin yes
然后:
service ssh restart
现在再试一次。如果一切顺利,您需要更改 docker 文件以在构建步骤中进行此更改。
用于创建 SSH 连接并将其公开到容器中的 Dockerfile 脚本:
# SSH
RUN apt-get -y install openssh-server
RUN mkdir -p /var/run/sshd
# authorize SSH connection with root account
RUN sed -i '/^#/!s/PermitRootLogin .*/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sudo service ssh restart
# change password root
RUN echo "root:docker"|chpasswd