基于docker commit和Dockerfile为镜像添加ssh服务

系统管理员可以通过SSH服务来远程登录管理服务器

本文介绍基于docker commit和Dockerfile为镜像添加ssh服务

docker commit

该命令支持用户对容器自定义

1.获取镜像ubuntu:18.04,并创建一个容器

[root@node2 db]docker pull ubuntu:18.04
[root@node2 db]docker run -it ubuntu:18.04 bash

2.配置软件源 

root@cc346f9c4d00:/#apt-get update 更新软件源

建议使用国内的镜像源,速度快,这里使用的是阿里的

root@cc346f9c4d00:/#cat >> /etc/apt/sources.list.d/aliyun.list << EOF
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
EOFroot@cc346f9c4d00:/#apt-get update 

3.安装和配置ssh服务

选择主流的openssh-server作为服务端

root@cc346f9c4d00:/#apt install openssh-server
root@cc346f9c4d00:/#  ps -ef | grep ssh
root          34      20  0 05:19 pts/1    00:00:00 grep --color=auto ssh

取消ssh服务的安全登录配置,取消pam登录限制

root@cc346f9c4d00:/#cat /etc/pam.d/sshd 
root@cc346f9c4d00:/#sed -ri 's/session    required     pam_loginuid.so/#session    required     pam_loginuid.so/g' /etc/pam.d/sshd

在root目录下创建.ssh目录,并复制公钥信息(在本地主机.ssh/id_rsa.pub 由ssh-keygen -t rsa生成)到authorized_keys

root@cc346f9c4d00:/#echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDkoEz96/kEL7BIkulUNVEqxK0imrlq7bHdtbOiZWpjkQMQH33j1ODNPjvHHXK6NjaQdAW0VptoLHpDaiiHhNku4wDy3WLWCU746zzbqDamgSz5foUlfCLeykdvCeyAyNLCht+pN2D+LLOYC/7f6Jgijb42OwPzZDcJLd4KF64/PmWWJfBIUTzyM4xmdy160t34phqCKX2noKaiCi+Dxnv2tQVT9DJq0LzGHMVDtZgC6Na1eFNnunMtjQ/fSYuJ87OLmaXufUEKgMb5foLgAhVX1My2zzNr8gRmohThaecKbejUou+LEkrtBVyLZkU7ZHRCSRsFVjZ3ZKyMQxWKQUueddLZOhJmiVsom55eAy2J+PJdXOw4rg6QDeHr2Urk/9vNEi3P0scsCwVsgjGdhdY10cHGh1YDpl6/EtSGduYLUprIbeVGpbyU5LPwFAYFt7EFMMRvFX6uYLc+OcLoG50DaG+EnZ1s0Q0VyfKVWZg5HPIvNeR3EvWdfOGxOXZwVHc= root@node2" > /root/.ssh/authorized_keys

创建自动启动的ssh服务的可执行文件run.sh,并添加可执行文件

root@cc346f9c4d00:/#cat > /run.sh << EOF
#!/bin/bash
/usr/sbin/sshd -D
EOFroot@cc346f9c4d00:/# chmod +x /run.sh

4.提交镜像

[root@node2 db]# docker commit cc346f9c4d00 sshd:ubuntu_v1
[root@node2 db]# docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED             SIZE
sshd                             ubuntu_v1           85594beba8ae        9 seconds ago       295MB
web                              v2                  4899ed6fa217        35 minutes ago      4.26MB
web                              v3                  4899ed6fa217        35 minutes ago      4.26MB
web                              v1                  bfa797a20cd9        About an hour ago   4.26MB
ubuntu                           latest              ca2b0f26964c        2 weeks ago         77.9MB
ubuntu                           18.04               f9a80a55f492        9 months ago        63.2MB
busybox                          latest              ba5dc23f65d4        10 months ago       4.26MB
reg.openlab.cn/openlab/busybox   v1                  ba5dc23f65d4        10 months ago       4.26MB
training/webapp                  latest              1b15d7898f68        8 years ago         349MB
training/postgres                latest              3da46b8c5ff4        9 years ago         365MB

5.使用镜像并测试

启动容器,添加端口映射,10022是宿主主机端口,22是容器ssh服务监听端口

[root@node2 db]# docker run -p 10222:22 -d ssh:ubuntu_v1 /run.sh
[root@node2 db]# ssh 192.168.37.22 -p 10222

Dockerfile 

1.创建一个工作目录

[root@node2 ~]mkdir /sshd_ubuntu
[root@node2 sshd_ubuntu]cd /sshd_ubuntu

2.添加Dockerfile run.sh aliyun.list authorized_keys并编写

[root@node2 sshd_ubuntu]#touch Dockerfile run.sh aliyun.list authorized_keys
[root@node2 sshd_ubuntu]# cat Dockerfile
FROM ubuntu:18.04
MAINTAINER zhuhy<zhuhy@111.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 && \ #取消pam限制mkdir /root/.ssh
COPY authorized_keys /root/.ssh/
COPY run.sh /run.sh
RUN chmod 755 /run.sh
EXPOSE 22
CMD ["/run.sh"]  #设置自启动[root@node2 sshd_ubuntu]# cat run.sh 
#!/bin/bash
/usr/sbin/sshd -D
[root@node2 sshd_ubuntu]# cat 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[root@node2 sshd_ubuntu]# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDkoEz96/kEL7BIkulUNVEqxK0imrlq7bHdtbOiZWpjkQMQH33j1ODNPjvHHXK6NjaQdAW0VptoLHpDaiiHhNku4wDy3WLWCU746zzbqDamgSz5foUlfCLeykdvCeyAyNLCht+pN2D+LLOYC/7f6Jgijb42OwPzZDcJLd4KF64/PmWWJfBIUTzyM4xmdy160t34phqCKX2noKaiCi+Dxnv2tQVT9DJq0LzGHMVDtZgC6Na1eFNnunMtjQ/fSYuJ87OLmaXufUEKgMb5foLgAhVX1My2zzNr8gRmohThaecKbejUou+LEkrtBVyLZkU7ZHRCSRsFVjZ3ZKyMQxWKQUueddLZOhJmiVsom55eAy2J+PJdXOw4rg6QDeHr2Urk/9vNEi3P0scsCwVsgjGdhdY10cHGh1YDpl6/EtSGduYLUprIbeVGpbyU5LPwFAYFt7EFMMRvFX6uYLc+OcLoG50DaG+EnZ1s0Q0VyfKVWZg5HPIvNeR3EvWdfOGxOXZwVHc= root@node2

3.创建镜像

[root@node2 sshd_ubuntu]#docker build -t sshd:ubuntu_v2 ./

4.测试运行容器

[root@node2 sshd_ubuntu]#docker run -d -P sshd:ubuntu_v2
[root@node2 sshd_ubuntu]#ssh 192.168.37.22 -p 32770

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/762858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cloudflare 应用例子几则

Cloudflare&#xff08;以下简称 CF&#xff09; 堪称互联网活菩萨&#xff0c;造就一大批高质量的互联网基础技术服务&#xff0c;更难得的是&#xff0c;几乎所有的服务都有对应的免费的套餐&#xff0c;而且出手大方&#xff0c;基本上有足够的容量或请求次数。 CDN CF 最…

MySQL的基本操作

目录 引言 一、SQL语句简介 &#xff08;一&#xff09;SQL通用语法 &#xff08;二&#xff09;SQL分类 &#xff08;三&#xff09;数据类型 1.数值类型 2.字符串类型 3.日期/时间类型 4.修饰符 二、登录mysql服务 三、SQL语句操作 &#xff08;一&#xff09;DD…

深度学习500问——Chapter04:经典网络解读(1)

文章目录 4.1 LeNet-5 4.1.1 模型介绍 4.1.2 模型结构 4.1.3 模型特性 4.2 AlexNet 4.2.1 模型介绍 4.2.2 模型结构 4.2.3 模型特性 4.3 ZFNet 4.3.1 模型介绍 4.3.2 模型结构 4.3.3 模型特性 4.4 Network in Network 4.4.1 模型介绍 4.4.2 模型结构 4.4.3 模型特性 4.1 LeNet-…

java面试:常见的限流算法有哪些

1 什么是限流算法 限流算法是一种用于限制流量请求的频率或速率的算法&#xff0c;其目的是在高并发或大流量请求的情况下&#xff0c;保护系统服务的安全性和可用性。限流算法可以应对热点业务带来的突发请求、调用方bug导致的突发请求以及恶意攻击请求等情况。是一种系统保护…

金融知识分享系列之:出场信号RSI指标

金融知识分享系列之&#xff1a;出场信号RSI指标 一、出场信号RSI指标二、RSI指标原理三、 指标用法四、RSI指标总结 一、出场信号RSI指标 名称&#xff1a;相对强弱指标参数&#xff1a;(默认14)组成&#xff1a;RSI线以及30轴、50轴、70轴构成 0-30是极弱&#xff1a;0-30的…

jmeter接口自动化测试框架

接口测试可以分为两部分&#xff1a; 一是线上接口&#xff08;生产环境&#xff09;自动化测试&#xff0c;需要自动定时执行&#xff0c;每5分钟自动执行一次&#xff0c;相当于每5分钟就检查一遍线上的接口是否正常&#xff0c;有异常能够及时发现&#xff0c;不至于影响用…

服务器病毒木马通用排查处理应急响应流程

目录 一、勒索病毒发作的特征 二、勒索病毒的应急响应 三、勒索病毒预防与事后加固 一、勒索病毒发作的特征 如果发现大量统一后缀的文件&#xff1b;发现勒索信在Linux/home、/usr等目录&#xff0c;在Windows 桌面或者是被加密文件的文件夹下。如果存在以上特…

四十八岁男子心慌心悸,失眠,喉咙有异物,刘家峰告诉你怎么办!

植物神经功能紊乱&#xff0c;通常简称为植物神经紊乱&#xff0c;是一种涉及自主神经系统的失调疾病。自主神经系统负责控制人体内许多自动功能&#xff0c;如心率、血压、消化和体温调节。植物神经功能紊乱是指由于自主神经系统失衡导致的一系列症状和体征的综合症。 植物神经…

windows DCMTK编译使用(qt) 医学图像

由于项目需要生成DICOM格式的图片&#xff0c;需要使用到第三方开源库DCMTK&#xff0c;于是研究了一番&#xff0c;该库是C编写的&#xff0c;DICOM主要用于医疗体系中&#xff0c;除了可以保存图片信息外&#xff0c;还可以储存患者信息&#xff0c;病例信息&#xff0c;医疗…

【Emgu CV教程】10.2、轮廓之外接矩形、面积计算

文章目录 一、轮廓的外接矩形二、轮廓的面积三、两个函数的简单应用1.原始素材2.代码3.运行结果 一、轮廓的外接矩形 轮廓的外接矩形&#xff0c;函数是&#xff1a; public static Rectangle BoundingRectangle (IInputArray points // 输入的轮廓 )函数返回的是一个矩形&am…

unity3d——沙盒路径

文章目录 Unity3D中不同平台的沙盒路径&#xff1a; 示例 在Unity3D中&#xff0c;尤其是在移动平台如Android和iOS上&#xff0c;由于系统安全机制&#xff0c;应用程序不能直接访问操作系统的所有文件和目录&#xff0c;而是被限制在一个特定的“沙盒”环境中。这个沙盒是一个…

宜搭低代码高级认证实操题1 todolist

进行中待办 已完成待办 待办事项 待办事项远程api和变量配置 回调函数 function didFetch(content) {//console.log(content.data);// content.b = 1; 修改返回数据结构中的 b 字段为1let res = content.data;let todoList = [];for(let i in res){todoList.push(res[i]);}con…

K8S Storage

概述 一般情况下&#xff0c;K8S中的Pod都不应该将数据持久化到Pod中&#xff0c;因为Pod可能被随时创建和删除&#xff08;扩容或缩容&#xff09;&#xff0c;即便是StatefulSet或Operator的Pod&#xff0c;也都不建议在Pod里存放数据&#xff0c;可以将数据持久化到Host上。…

深入剖析Java并发库(JUC)之StampedLock的应用与原理

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! 在现代多核处理器架构下&#xff0c;并发编程成为提升程序性能的关键手段。Java作为一门广泛使用的编程语言&#xff0c;提供了丰…

服务器数据恢复—光纤环境互斥不当导致存储VMFS卷损坏的数据恢复案例

服务器数据恢复环境&故障&#xff1a; 某公司的信息管理平台&#xff0c;通过3台虚拟机共享了一台存储设备供企业内部使用&#xff0c;存储设备中存放了公司内部重要的数据文件。 由于业务增长的需要&#xff0c;管理员又在这个存储网络上连接了一台Windows server服务器&a…

QT+GDAL实现影像的读取和显示

详细流程参考https://blog.csdn.net/deirjie/article/details/37872743 代码 //open_image.h #pragma once #include <QtWidgets/QMainWindow> #include "ui_open_image.h" #include "gdal_priv.h" #include <QMessageBox> #include <QFi…

专题一——双指针算法

原理&#xff1a;将数组进行区间划分&#xff0c;通过指针(下标)的移动实现题目所要求的区间&#xff08;数组分块&#xff09; &#xff08;实现代码统一是C&#xff09; 建议在做题与看题解时要自己反复模拟这个实现的过程&#xff0c;以后在做题做到类似的题才能举一反三&am…

git基础-记录对仓库的更改

记录对仓库的更改 到目前为止&#xff0c;我们应该在本地计算机上拥有一个真正的 Git 仓库&#xff0c;并且拥有所有文件的一个检出或工作副本。通常&#xff0c;我们会想要开始进行更改&#xff0c;并在项目达到想要记录的状态时&#xff0c;将这些更改的快照提交到我们仓库中…

【数字图像处理系列】读取图像

【数字图像处理系列】读取图像 使用函数 imread 可以将图像读人 MATLAB 环境&#xff0c;imread 的语法为 imread(filename)其中&#xff0c;filename是一个含有图像文件全名的字符串(包括任何可用的扩展名)。例如&#xff0c;命令行 >>f imread(pout.tif)将tif图像po…

【面试经典150 | 数组】分发糖果

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;贪心两次遍历 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结构等内容…