【云原生 | 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

目录
相关文章
|
18小时前
|
敏捷开发 Cloud Native 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第13天】 随着企业加速其数字化进程,云原生架构已经成为推动创新和维持市场竞争力的核心要素。本文将探讨云原生技术的基本原理、它如何促进敏捷开发,以及它在实现可扩展性、弹性和资源优化方面的优势。通过分析案例研究和行业趋势,我们将深入理解云原生架构是如何成为企业转型不可或缺的技术支撑。
|
1天前
|
运维 监控 Cloud Native
构建高效稳定的云原生运维体系
【5月更文挑战第13天】在数字化转型的浪潮中,企业纷纷将业务迁移至云端以提升灵活性和效率。然而,随之而来的是日益复杂的运维挑战。本文旨在探讨如何构建一个高效且稳定的云原生运维体系,通过自动化、微服务以及持续集成与持续部署(CI/CD)等策略,实现对动态云环境的精准管理。我们将分析云原生技术的最佳实践,并讨论如何利用这些实践优化资源分配,提高系统可靠性,从而支撑业务的快速迭代和增长。
|
1天前
|
Cloud Native 安全 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第12天】 随着企业加速其数字化进程,云原生架构已成为实现敏捷性、可扩展性和资源优化的关键技术。本文深入探讨了如何通过采纳云原生原则和模式,企业能够有效地应对不断变化的市场需求,同时确保系统的可靠性和安全性。我们将分析云原生的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及无服务器计算,并展示它们如何共同促进业务和技术的同步演进。
|
2天前
|
Cloud Native 安全 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第12天】 随着数字化转型的浪潮不断冲击传统IT架构,企业亟需灵活、高效且可扩展的技术解决方案以保持竞争力。云原生技术作为一种新兴的系统构建方式,以其独特的弹性、微服务和持续交付等特性,成为推动企业快速响应市场变化的关键因素。本文将深入探讨云原生架构的核心组件,分析其如何促进企业的敏捷性,以及在实施过程中可能遇到的挑战和解决策略,为企业采纳云原生技术提供参考。
|
2天前
|
运维 Cloud Native 持续交付
构建未来:云原生技术在企业数字化转型中的关键作用
【5月更文挑战第12天】 随着企业加速其数字化转型的步伐,云原生技术已站在风口浪尖,成为支撑现代应用架构的骨干力量。本文深入探讨了云原生技术的核心概念、发展历程以及如何在不断变化的技术环境中满足企业的动态需求。我们将分析微服务、容器化、持续集成和持续部署(CI/CD)以及DevOps文化如何共同塑造了一个敏捷、可扩展且高效的系统环境。通过实际案例和最新趋势的讨论,文章旨在揭示云原生技术如何使企业能够快速响应市场变化,提高运营效率,并最终实现业务目标。
7 2
|
2天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第11天】 随着数字化转型的深入,企业对技术的敏捷性、可扩展性和成本效益提出了更高的要求。云原生架构作为一种新兴的设计理念和实践方法,正逐渐成为推动企业技术革新的关键力量。本文将深入探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续交付(CI/CD)以及DevOps文化,并分析它们如何共同作用于企业的IT基础设施,实现灵活、高效的运营模式。同时,我们也将识别在采纳云原生技术时面临的主要挑战,并提出相应的解决策略,以帮助企业顺利过渡到云原生时代。
|
3天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第11天】 随着企业加速迈向数字化时代,云原生架构已成为推动创新与维持竞争力的核心动力。本文深入探讨了云原生技术如何优化资源利用,提升服务可靠性,并支持快速迭代,从而帮助企业实现敏捷性和弹性。我们将分析云原生的主要组件如容器化、微服务、持续集成/持续部署(CI/CD)和DevOps文化,以及它们如何共同塑造出一个灵活、高效的企业IT生态系统。通过案例研究和最佳实践的分享,本文旨在为企业实施云原生架构提供策略指导和技术洞见。
|
3天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第11天】 随着企业加速其数字化转型之旅,云原生架构已成为推动创新和敏捷性的关键技术。本文深入探讨了云原生技术如何助力企业实现资源的最优配置、提高服务可靠性以及加快产品上市速度。通过分析容器化、微服务、持续集成与持续部署(CI/CD)等核心技术,揭示了云原生为企业带来的变革。此外,文中还将讨论在采纳云原生架构时面临的挑战及应对策略,为读者提供一个全面的云原生应用指南。
6 0
|
4天前
|
存储 Prometheus 监控
构建高效稳定的云原生监控系统
【5月更文挑战第10天】在微服务和容器化技术日益普及的今天,构建一个高效、稳定且易于扩展的云原生监控系统对于保障系统健康至关重要。本文将探讨如何利用开源工具和最佳实践来搭建一个全面的监控解决方案,覆盖从基础设施到应用层的各个层面。我们将重点讨论Prometheus作为监控解决方案的核心组件,并结合Grafana进行数据可视化,同时考虑Alertmanager用于告警管理。此外,文章还将介绍如何通过Fluentd和Elasticsearch实现日志聚合,以及如何使用Jaeger进行分布式追踪,以便于更好地理解系统的运行状况。
12 0
|
4天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第10天】 随着企业加速其数字化转型的步伐,云原生架构已成为实现敏捷性、可扩展性和创新的关键驱动力。本文探讨了云原生技术的兴起背景、核心技术组件以及如何通过这些技术推动企业IT基础设施的现代化。文章重点分析了容器化、微服务、持续集成/持续部署(CI/CD)和DevOps文化对于构建灵活且高效的云环境的重要性,并提供了实施云原生策略的实用建议。通过深入分析,本文旨在为决策者提供一个清晰的指南,以利用云原生架构优化其业务操作并保持竞争优势。
8 0

热门文章

最新文章