添加ssh服务构建新镜像-docker commit 方式01
添加ssh服务构建新镜像-docker commit 方式
1:docker commit构建自定义镜像---一般不推荐使用这种方式构建新镜像
1:ubuntu基础镜像下载
ubuntu@ubuntu:~$ docker pull ubuntu:18.04
2:运行镜像,启动一个容器
ubuntu@ubuntu:~$ docker run -it ubuntu:18.04 /bin/bash
root@92cf48876d4c:/#
3:配置软件源
#1:更新
root@92cf48876d4c:/# apt-get update
#2:备份
root@92cf48876d4c:/# cp /etc/apt/sources.list /etc/apt/sources.list.bak
#3:安装vim.net-tools
root@92cf48876d4c:/# apt-get install vim net-tools
#4:将/etc/apt/sources.list下面的内容替换成阿里源
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
#5:更新
root@92cf48876d4c:/# apt-get update
4:安装和配置ssh服务
#1:服务端安装
root@92cf48876d4c:/# apt-get install openssh-server
#2:要正常启动SSH服务,所以手动创建/var/run/sshd目录
root@92cf48876d4c:/# mkdir -p /var/run/sshd
#3:启动sshd服务
root@92cf48876d4c:~# /usr/sbin/sshd -D &
[1] 4122
#4:取消pam登录限制
root@92cf48876d4c:~# sed -ri 's/session required pam_loginuid.so/#&/g' /etc/pam.d/sshd
root@92cf48876d4c:~# cat /etc/pam.d/sshd | grep pam_loginuid.so
#session required pam_loginuid.so
#5:配置登录秘钥
1:主机(client)生成公钥
ubuntu@ubuntu:~$ ssh-keygen -trsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ubuntu/.ssh/id_rsa.
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:cCJNE3EeRpucmyTAN4tJ1diGO9TVuaNJ4LkPsJisMOE ubuntu@ubuntu
The key's randomart image is:
+---[RSA 3072]----+
| ...*X=... . |
| o+***= o |
| ..==*Oo . |
|. o.=*oo. o |
|.. . o +So o . |
|oE + . o o |
| o . o |
| . . |
| |
+----[SHA256]-----+
一直敲回车就行了
2:在容器中(server)中创建/root/.ssh目录
root@92cf48876d4c:~# mkdir /root/.ssh
3:将client的公钥复制到server的authorized_keys文件中
ubuntu@ubuntu:~$ cat /home/ubuntu/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCuqW0ncbixcQeCllHpudoguBjmxf9vf8GMdGkVrw25M0WlLbLj2gqR2MC6AdzGsPY5VThRkVeGG0UlOA382VeTj68HitC9GTS+goxl1QzPwfPWzgSJ7SNYvYRSnqx5uAuF6IUXiiv57o/CMJGJ/3JOc5jWOL+Kl3aUZExD7dxIkQd9C3BikjZLQa0IobFf5N0uZJNv+MPRwV5CH1+pNzWRo97jYJZ7aHoifT8NXyBN4Gug9Z4rYQWEMpa3B85V0nQRJLdJPiXtgAvlLmtqW8RfoHXXZlq05Oh71uRvhtHYjRi3oz9D/FxfwVBqQVipZuAb1wcYnhOW9xj8TEGDhe4QEK1Owc8spozMWPG4s0fhh3Zx6YsSwi4GAUncPKmPyHyh2MPcWpV0vRmo+Ro9L4jxZ0OCi3h/ALB9zmcVhuctin67mHSK/NX2jaKdXms+VlIJvQS0mDzY6Epr7wGZ+2mZUBq/5HCaZEfq2I68IGEQ3UjIDQ+MaZZ4mWlpesjhNIE= ubuntu@ubuntu
root@92cf48876d4c:~# vi /root/.ssh/authorized_keys
root@92cf48876d4c:~# cat /root/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCuqW0ncbixcQeCllHpudoguBjmxf9vf8GMdGkVrw25M0WlLbLj2gqR2MC6AdzGsPY5VThRkVeGG0UlOA382VeTj68HitC9GTS+goxl1QzPwfPWzgSJ7SNYvYRSnqx5uAuF6IUXiiv57o/CMJGJ/3JOc5jWOL+Kl3aUZExD7dxIkQd9C3BikjZLQa0IobFf5N0uZJNv+MPRwV5CH1+pNzWRo97jYJZ7aHoifT8NXyBN4Gug9Z4rYQWEMpa3B85V0nQRJLdJPiXtgAvlLmtqW8RfoHXXZlq05Oh71uRvhtHYjRi3oz9D/FxfwVBqQVipZuAb1wcYnhOW9xj8TEGDhe4QEK1Owc8spozMWPG4s0fhh3Zx6YsSwi4GAUncPKmPyHyh2MPcWpV0vRmo+Ro9L4jxZ0OCi3h/ALB9zmcVhuctin67mHSK/NX2jaKdXms+VlIJvQS0mDzY6Epr7wGZ+2mZUBq/5HCaZEfq2I68IGEQ3UjIDQ+MaZZ4mWlpesjhNIE= ubuntu@ubuntu
6:创建自启动的脚本文件
root@92cf48876d4c:~# vi /run.sh
root@92cf48876d4c:~# cat /run.sh
#! /bin/bash
/usr/sbin/sshd -D
root@92cf48876d4c:~# chmod a+x /run.sh
7:最后退出容器
root@92cf48876d4c:~# exit
exit
8:docker commit 保存为一个新镜像
ubuntu@ubuntu:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
92cf48876d4c ubuntu:18.04 "/bin/bash" About an hour ago Exited (0) 2 minutes ago sad_kilby
ubuntu@ubuntu:~$ docker commit 92c sshd:ubuntu
sha256:3475b858b5b3f822bbec87395f19206ff4d3a64540fba948bd58a32aad237bc6
ubuntu@ubuntu:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sshd ubuntu 3475b858b5b3 21 minutes ago 209MB
ubuntu 18.04 775349758637 3 weeks ago 64.2MB
training/webapp latest 6fae60ef3446 4 years ago 349MB
9:使用sshd:ubuntu镜像,添加端口映射10022-->22
ubuntu@ubuntu:~$ docker run -p 10022:22 -d sshd:ubuntu /run.sh
cb3b9c80c3b6049a20832a0772b9c9f5ab3815a5c18d7b1e57c66b2b1af8b45b
ubuntu@ubuntu:~$ docker ps -al
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cb3b9c80c3b6 sshd:ubuntu "/run.sh" 21 minutes ago Up 21 minutes 0.0.0.0:10022->22/tcp mystifying_clarke
9:在宿主机登录容器
ubuntu@ubuntu:~$ ssh root@172.17.0.1 -p 10022
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 5.3.0-23-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, you can run the 'unminimize' command.
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
root@cb3b9c80c3b6:~# ls -l
total 0
root@cb3b9c80c3b6:~# ls -al /root/
total 44
drwx------ 1 root root 4096 Nov 26 03:09 .
drwxr-xr-x 1 root root 4096 Nov 26 02:52 ..
-rw------- 1 root root 1215 Nov 26 02:48 .bash_history
-rw-r--r-- 1 root root 3106 Apr 9 2018 .bashrc
drwx------ 2 root root 4096 Nov 26 03:09 .cache
-rw-r--r-- 1 root root 148 Aug 17 2015 .profile
drwxr-xr-x 2 root root 4096 Nov 26 02:22 .ssh
-rw------- 1 root root 8614 Nov 26 02:24 .viminfo
root@cb3b9c80c3b6:~#
ubuntu@ubuntu:~$ ssh root@192.168.43.97 -p 10022
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 5.3.0-23-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, you can run the 'unminimize' command.
Last login: Tue Nov 26 03:11:06 2019 from 192.168.43.97
root@cb3b9c80c3b6:~#
格式:ssh 远程用户root@本地主机ip -p 10022 都可以连上容器
添加ssh服务构建新镜像-docker commit 方式01的更多相关文章
- Docker实战(七)之为镜像添加SSH服务
1.基于commit命令创建 Docker提供了docker commit命令,支持用户提交自己对制定容器的修改,并生成新的镜像.命令格式为docker commit CONTAINER [REPOS ...
- 读书笔记---《Docker 技术入门与实践》---为镜像添加SSH服务
之前说到可以通过attach和exec两个命令登陆容器,但是如果遇到需要远程通过ssh登陆容器的场景,就需要手动添加ssh服务. 下面介绍两种方法创建带有ssh服务的镜像,commit命令创建和通过D ...
- 为镜像添加SSH服务
操作Docker容器介绍了一些进入容器的办法,比如attach.exec等命令,但是这些命令都无法解决远程管理容器的问题.因此,当需要远程登录到容器内进行一些操作的时候,就需要SSH的支持了. 如何自 ...
- Docker-为镜像添加SSH服务
进入容器的办法有很多,包括exec.attach等命令,但是这些命令都无法解决远程管理容器的问题,因此,需要SSH的支持 基于commit命令创建 docker提供了docker commit命令,支 ...
- docker 为镜像添加ssh服务-docker commit命令创建
环境centos7 一.准备工作 docker pull ubuntu:18.04 docker run -it ubuntu:18.04 bash 二.配置软件源apt-get update,如果系 ...
- Docker实战-为镜像添加SSH服务
1.基于docker commit命令创建 Docker提供了docker commit命令,支持用户提交自己对定制容器的修改,并生成新的镜像. 命令格式为:docker commit CONTAIN ...
- 为Docker镜像添加SSH服务
一.基于commit命令创建 1. 首先下载镜像 $ docker run -it ubuntu:16.04 /bin/bash 2. 安装SSH服务 #更新apt缓存 root@5ef1d31632 ...
- docker为镜像添加SSH服务
启动并进入容器中 这里用db1容器完成实验. 安装openssh服务和修改sshd配置文件 安装openssh yum install openssh-server openssh-clients - ...
- docker镜像的创建方法docker commit方式
Docker 提供了两种构建镜像的方法: docker commit 命令(交互式修改创建) Dockerfile 构建文件 (文本命令定义) Docker commit方法: 1.运行一个现有容器 ...
随机推荐
- Azure DevOps 替换 appsettings 解决方案
之前发布了 <.Net Core DevOps -免费用Azure四步实现自动化发布(CI/CD)>之后,有很多朋友私信我说如何替换 appsettings 里面的 ConnectionS ...
- SpringBoot与MybatisPlus3.X整合之通用枚举(十二)
一 通用枚举 解决了繁琐的配置,让 mybatis 优雅的使用枚举属性! 自3.1.0开始,可配置默认枚举处理类来省略扫描通用枚举配置 默认枚举配置 升级说明: 3.1.0 以下版本改变了原生默认行为 ...
- 设计模式C++描述----01.单例(Singleton)模式
一.概念 单例模式:其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享. class CSingleton { //公有的静态方法,来获取该实例 public: s ...
- 谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信
前言 之前发过一篇文章,用 Python 制作的给父母天气预报提醒的小工具天气变冷了,给父母制作一个天气提醒小助手,这篇文章我同步到博客上之后,有读者在评论区留言,对于部分微信没有网页版接口,导致无法 ...
- JAVA中锁的解决方案
前言 在上一节中,我们给大家介绍了什么是锁,以及锁的使用场景,我相信大家对锁的定义,以及锁的重要性都有了比较清晰的认识.在这一节中,我们会给大家继续做深入的介绍,介绍JAVA为我们提供的不同种类的锁. ...
- 省市区三级联动(vue)
vue项目中使用到三级联动,现在自己实现一个三级联动,仅供大家参考一下,直接上代码. <template> <section class="container"& ...
- ubuntu 制作本地yum仓库
ubuntu 制作本地yum仓库 笔者: 张首富 W X: y18163201(请备注) qq群:895291458 时间:2019-01-31晚 今天到某银行进行软件部署的时候,碰到所有电脑都不允许 ...
- 使用Beautiful Soup
Beautiful Soup初了解 # 解析工具Beautiful Soup,借助网页的结构和属性等特性来解析网页(简单的说就是python的一个HTML或XML的解析库)# Beautiful So ...
- 学习笔记之javascript编写简单计算器
感觉自己的的实力真的是有待提高,在编写计算器的过程中,出现了各种各样的问题,暴露了自己的基础不扎实,逻辑思维能力不够,学得知识不能运用到自己的demo中区.先介绍一些这个这个计算器的整体思路.大致 ...
- 【IOS开发—视图控制器】
一.UIViewController 视图控制器是UIViewController类或者其子类对象,每个视图控制器都负责管理一个视图层次结构.在UIViewController中有一个重要的UIVie ...