内容纲要

win 下使用 Docker Toolbox 搭建环境

  • Dockerfile 用来构建 docker image
  • docker-compose.yml 用来管理 docker 容器的启动,不过也可以 docker run 来启动容器
  • machine\machines\default\config.json 查看宿主机的 IP, 之后通过 xshell 连上

Dockerfile

[code]
FROM centos:latest

RUN yum -y update && \
yum -y groupinstall ‘Development Tools’ && \
yum -y install openssh-server vim && \
yum -y install curl wget && \
yum clean all && \
rm -rf /tmp/* /var/tmp/*
[/code]

构建镜像
[code]
docker build -t wyrover-gcc-centos-latest .
[/code]

启动镜像

[code]
docker run -it -p 2200:22 -v /mnt/src/docker-containers/wyrover-gcc-centos-latest/app:/app wyrover-gcc-centos-latest /bin/bash
[/code]

启动 sshd

[code]
# /usr/sbin/sshd -D
[/code]

这时报错

[code]
[root@672cee6ceca0 ~]# usr/sbin/sshd -D
bash: usr/sbin/sshd: No such file or directory
[root@672cee6ceca0 ~]# /usr/sbin/sshd -D
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available — exiting.
[/code]

执行以下命令解决

[code]
# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ”
# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ”
# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ”
[/code]

修改 /etc/ssh/sshd_config
用 vi 改,或者 sed

UsePAM yes 改为 UsePAM no
UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no

[code]
# sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
# sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
[/code]

修改容器 root 密码

[code]
passwd root
或者
echo "123456" | passwd –stdin root
[/code]

提交保存修改后的镜像

在另一个 shell 下查看 container id
[code]
docker ps
[/code]

然后保存
[code]
docker commit 672cee6ceca0 wyrover-gcc-centos-latest
[/code]

再次启动镜像,然后用 xshell 连上。

发表评论

电子邮件地址不会被公开。 必填项已用*标注