Dockerfile为镜像添加SSH服务的实现步骤
1.创建目录
[root@openEuler-node1 db]# mkdir sshd_ubuntu
2.创建 Dockerfile、 run.sh 、authorized_keys、vim aliyun.list 文件
[root@openEuler-node1 sshd_ubuntu]# cd sshd_ubuntu [root@openEuler-node1 sshd_ubuntu]# touch Dockerfile run.sh authorized_keys vim aliyun.list
3.在宿主主机上生成 SSH 密钥对,写入authorized_keys
[root@openEuler-node1 ~]# ssh-keygen -t rsa [root@openEuler-node1 sshd_ubuntu]# cd sshd_ubuntu [root@openEuler-node1 sshd_ubuntu]# cat ~/.ssh/id_rsa.pub > authorized_keys
4.编写更改Ubuntu的源为国内aliyun源
[root@openEuler-node1 sshd_ubuntu]# vim aliyun.list deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
5.编写run.sh
#!/bin/bash /usr/sbin/sshd -D
5.编写 Dockerfile
[root@openEuler-node1 sshd_ubuntu]# vim Dockerfile
FROM ubuntu:18.04
MAINTAINER yuj<yj@qq.com>
COPY aliyun.list /etc/apt/sources.list.d/aliyun.list
RUN apt update && \
apt install -y openssh-server && \
mkdir /var/run/sshd && \
sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd && \
mkdir /root/.ssh
COPY authorized_keys /root/.ssh/
COPY run.sh /run.sh
RUN chmod 755 /run.sh
EXPOSE 22
CMD ["/run.sh"]
6.制作镜像并启动容器
[root@openEuler-node1 sshd_ubuntu]# docker build -t sshd:ubuntu_v1 ./ [root@openEuler-node1 sshd_ubuntu]# docker run -d -P sshd:ubuntu_v1
7.查看容器运行状态
[root@openEuler-node1 sshd_ubuntu]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3df76cc3dedd sshd:ubuntu_v1 "/run.sh" 6 seconds ago Up 5 seconds 0.0.0.0:32776->22/tcp, :::32776->22/tcp vigorous_williamson
8.用ssh连接登陆这个容器
[root@openEuler-node1 sshd_ubuntu]# ssh 192.168.136.55 -p 32776 The authenticity of host '[192.168.136.55]:32776 ([192.168.136.55]:32776)' can't be established. ED25519 key fingerprint is SHA256:PCuiPOPbts35IzrOQ3PvZsU0+W+i7O1zheVc1XmDgHU. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '[192.168.136.55]:32776' (ED25519) to the list of known hosts. Welcome to Ubuntu 18.04.6 LTS (GNU/Linux 5.10.0-182.0.0.95.oe2203sp3.x86_64 x86_64) root@3df76cc3dedd:~#
到此这篇关于Dockerfile为镜像添加SSH服务的实现步骤的文章就介绍到这了,更多相关Dockerfile添加SSH服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Dockerfile如何使用alpine系统制作haproxy镜像
这篇文章主要介绍了Dockerfile如何使用alpine系统制作haproxy镜像问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-05-05
Docker中部署MySQL 5.7并远程连接Navicat的完整指南
MySQL是最流行的关系型数据库之一,而Docker提供了轻量级、可移植的容器化解决方案,本文将详细介绍如何在CentOS 7上使用Docker部署 MySQL 5.7,并通过Windows上的Navicat进行远程连接,需要的朋友可以参考下2025-07-07
Windows环境GeoServer打包Docker的方法实现
本文介绍了在Windows环境下将GeoServer打包为Docker镜像,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-12-12
docker-maven-plugin打包镜像并上传到私有仓库
本文主要介绍了docker-maven-plugin打包镜像并上传到私有仓库,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-09-09
Docker安装MongoDB的过程(mongo.latest)
MongoDB是一种高性能、灵活的数据库,特别适合处理大量非结构化数据,它采用文档数据模型,支持复杂的数据结构,提供类似面向对象的查询语言,本文给大家介绍Docker安装MongoDB的过程(mongo.latest),感兴趣的朋友一起看看吧2024-11-11
Docker利用DockerFile创建部署NVIDIA+PyTorch容器的详细过程
这篇文章主要介绍了Docker利用DockerFile创建部署NVIDIA+PyTorch容器的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-06-06


最新评论