【云原生 | 13】基于commit构建镜像实战

简介: Docker提供了docker commit命令,支持用户提交自己对制定容器的修改,并生成新的镜像。命令格式为docker commit CONTAINER[REPOSITORY[: TAG]]。

  🍁作者简介:🏅云计算领域优质创作者🏅新星计划第三季python赛道TOP1🏅 阿里云ACE认证高级工程师🏅

✒️个人主页:小鹏linux

💊个人社区:小鹏linux(个人社区)欢迎您的加入!image.gif

目录

1.基于commit命令创建

1.1 准备工作

1.2 安装和配置SSH服务

1.3 保存镜像

1.4 使用镜像

👑👑👑结束语👑👑👑


1.基于commit命令创建

Docker提供了docker commit命令,支持用户提交自己对制定容器的修改,并生成新的镜像。命令格式为docker commit CONTAINER[REPOSITORY[: TAG]]。

这里将介绍如何用docker commit命令。我以ubuntu:14.04镜像添加SSH服务的操作流程为例。

1.1 准备工作

首先,使用ubuntu:14.04镜像来创建一个容器:

$ docker run -it ubuntu:14.04 /bin/bash

image.gif

更新apt缓存,并安装openssh-server:

root@fc1936ea8ceb:/#apt-get update; apt-get install openssh-server -y

image.gif

1.2 安装和配置SSH服务

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

root@fc1936ea8ceb:/# apt-get install openssh-server –y

image.gif

如果需要正常启动SSH服务,则目录/var/run/sshd必须存在。手动创建它,并启动SSH服务:

root@fc1936ea8ceb:/# mkdir -p /var/run/sshd 
root@fc1936ea8ceb:/# /usr/sbin/sshd -D &
[1] 3254

image.gif

此时查看容器的22端口(SSH服务默认监听的端口),可见此端口已经处于监听状态:

root@fc1936ea8ceb:/# netstat -tunlp 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address    Foreign Address    State    PID/Program name 
tcp        0      0 0.0.0.0:22       0.0.0.0:*          LISTEN - 
tcp6       0      0 :::22            :::*               LISTEN -

image.gif

修改SSH服务的安全登录配置,取消pam登录限制:

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

image.gif

在root用户目录下创建.ssh目录,并复制需要登录的公钥信息(一般为本地主机用户目录下的.ssh/id_rsa.pub文件,可由ssh-keygen-t rsa命令生成)到authorized_keys文件中:

root@fc1936ea8ceb:/# mkdir root/.ssh 
root@fc1936ea8ceb:/# vi /root/.ssh/authorized_keys

image.gif

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

root@fc1936ea8ceb:/# vi /run.sh 
root@fc1936ea8ceb:/# chmod +x run.sh

image.gif

其中,run.sh脚本内容如下:

#!/bin/bash 
/usr/sbin/sshd -D

image.gif

最后,退出容器:

root@fc1936ea8ceb:/# exit 
exit

image.gif

1.3 保存镜像

将所退出的容器用docker commit命令保存为一个新的sshd:ubuntu镜像:

$ docker commit fc1 sshd:ubuntu 
7aef2cd95fd0c712f022bcff6a4ddefccf20fd693da2b24b04ee1cd3ed3eb6fc

image.gif

使用docker images查看本地生成的新镜像sshd:ubuntu,目前拥有的镜像.


如下:

$ docker images 
REPOSITORY     TAG     IMAGE ID       CREATED             VIRTUAL SIZE 
sshd           ubuntu  7aef2cd95fd0   10 seconds ago      255.2 MB
busybox        latest  e72ac664f4f0   3 weeks ago         2.433 MB
ubuntu         latest  ba5877dc9bec   3 months ago        192.7 MB

image.gif

1.4 使用镜像

启动容器,并添加端口映射10022-->22。其中10022是宿主主机的端口,22是容器的SSH服务监听端口:

$ docker run -p 10022:22 -d sshd:ubuntu /run.sh 
3ad7182aa47f9ce670d933f943fdec946ab69742393ab2116bace72db82b4895

image.gif

启动成功后,可以在宿主主机上看到容器运行的详细信息:

$ docker ps 
CONTAINER ID        IMAGE        COMMAND        CREATED       STATUS       PORTS     NAMES 
3ad7182aa47f        sshd:ubuntu  "/run.sh"      2 seconds ago Up 2 seconds 0.0.0.0:10022->22/tcp focused_ptolemy

image.gif

在宿主主机(192.168.1.200)或其他主机上,可以通过SSH访问10022端口来登录容器:

$ ssh 192.168.1.200 -p 10022 
root@3ad7182aa47f:~#

image.gif

👑👑👑结束语👑👑👑

image.gif

目录
相关文章
|
3月前
|
消息中间件 人工智能 安全
云原生进化论:加速构建 AI 应用
本文将和大家分享过去一年在支持企业构建 AI 应用过程的一些实践和思考。
832 45
|
5月前
|
运维 NoSQL Serverless
|
4月前
|
Cloud Native 算法 区块链
站在巨人的肩膀上:gRPC通过HTTP/2构建云原生时代的通信标准
gRPC是云原生时代高效通信标准,基于HTTP/2实现,支持四种服务方法。通过.proto文件定义接口,生成多语言Stub,实现跨语言调用。其请求响应结构清晰,结合Headers、Data帧与Trailers,保障高性能与可扩展性,广泛应用于微服务架构中。
241 0
|
3月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
5月前
|
运维 NoSQL Serverless
《第四纪元》玩得轻松,构建也轻松 | 阿里云云原生 API 网关、函数计算助力 IGame 快速构建轻休闲游戏
在轻休闲游戏流量波动大、生命周期短的背景下,传统架构难以应对成本与扩展挑战。本文介绍了基于阿里云函数计算 FC 和 Redis 构建的新一代服务器架构,实现弹性伸缩、成本优化与高效运维,助力轻休闲游戏快速迭代与稳定运营,提升开发效率并降低运维复杂度。
《第四纪元》玩得轻松,构建也轻松 | 阿里云云原生 API 网关、函数计算助力 IGame 快速构建轻休闲游戏
|
6月前
|
安全 Cloud Native 容器
开发者视角:构建坚不可摧的云原生安全工具 - 安全内生于开发流
云原生时代,运维团队面临容器漏洞、微服务失陷与CI/CD污染三大威胁。通过容器基因解码、微服务免疫与管道净化构建三维防御体系,结合板栗看板、Snyk、Check Point、Aqua等工具,实现从漏洞预测到实时拦截的全链路防护。未来,安全将内生于云原生技术,构建主动免疫防线。
开发者视角:构建坚不可摧的云原生安全工具 - 安全内生于开发流
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
402 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
5月前
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
本文内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
544 16
|
5月前
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。

热门文章

最新文章