目标
创建ssh镜像,并使用ssh镜像创建容器以便上传文件。
一、以centos镜像为基础构建ssh的镜像
mkdir -p /data/build/ssh/ #创建镜像构建目录
cd /data/build/ssh/ #进入镜像构建目录
#将下载的jdk安装包jdk-8u162-linux-x64.tar.gz上传到该目录
vim Dockerfile #创建构建文件
构建文件内容如下:
FROM centos
# 更新系统及更新源(可与其他构建共享此镜像层)
RUN yum -y update \
&& yum -y install epel-release
# 安装ssh服务
RUN yum -y install net-tools.x86_64 \
&& yum -y install openssh-server \
&& yum -y install openssh-clients \
&& ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" \
&& ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" \
&& ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""
# 监听端口
EXPOSE 22
# 启动监听
CMD /usr/sbin/sshd -D
构建镜像
docker build -t centos-ssh . #构建镜像,且镜像名为centos-ssh
二、以centos-ssh镜像为基础启动容器
docker run \
-dit \
--rm \
--name out_ssh \
-p 2201:22 \
-v /data/prd/bt/wwwroot:/root/web \
centos-ssh #启动一个ssh容器,并使用宿主机的2201端口
docker run \
-dit \
--rm \
--name in_ssh \
-p 2202:22 \
-v /data/prd/bt/wwwroot:/root/web \
centos-ssh #启动另一个ssh容器,并使用宿主机的2202端口
docker exec -it out_ssh passwd root #设置容器的root密码
docker exec -it in_ssh passwd root #设置容器的root密码
三、使用容器进行ssh连接
使用如xshell工具,连接宿主机IP,并使用端口号2201或2202,即可连接容器。