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

2年前博客48033
【云原生 | 13】基于commit构建镜像实战 小鹏linux 已于2022-07-10 10:11:33修改 1660 收藏 97 分类专栏: 阶段六:零基础入门云原生(Docker+k8s) 文章标签: 云原生 云计算 docker 容器 linux 原力计划 于2022-07-10 10:08:05首次发布 阶段六:零基础入门云原生(Docker+k8s) 专栏收录该内容 39 篇文章 58 订阅 订阅专栏

 🍁作者简介:🏅云计算领域优质创作者🏅新星计划第三季python赛道TOP1🏅 阿里云ACE认证高级工程师🏅 ✒️个人主页:小鹏linux 💊个人社区:小鹏linux(个人社区)欢迎您的加入!

目录

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 更新apt缓存,并安装openssh-server: root@fc1936ea8ceb:/#apt-get update; apt-get install openssh-server -y 1.2 安装和配置SSH服务 选择主流的openssh-server作为服务端: root@fc1936ea8ceb:/# apt-get install openssh-server –y 如果需要正常启动SSH服务,则目录/var/run/sshd必须存在。手动创建它,并启动SSH服务: root@fc1936ea8ceb:/# mkdir -p /var/run/sshd root@fc1936ea8ceb:/# /usr/sbin/sshd -D & [1] 3254 此时查看容器的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 - 修改SSH服务的安全登录配置,取消pam登录限制: root@fc1936ea8ceb:/# 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@fc1936ea8ceb:/# mkdir root/.ssh root@fc1936ea8ceb:/# vi /root/.ssh/authorized_keys 创建自动启动SSH服务的可执行文件run.sh,并添加可执行权限: root@fc1936ea8ceb:/# vi /run.sh root@fc1936ea8ceb:/# chmod +x run.sh 其中,run.sh脚本内容如下: #!/bin/bash /usr/sbin/sshd -D 最后,退出容器: root@fc1936ea8ceb:/# exit exit 1.3 保存镜像 将所退出的容器用docker commit命令保存为一个新的sshd:ubuntu镜像: $ docker commit fc1 sshd:ubuntu 7aef2cd95fd0c712f022bcff6a4ddefccf20fd693da2b24b04ee1cd3ed3eb6fc 使用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 1.4 使用镜像 启动容器,并添加端口映射10022-->22。其中10022是宿主主机的端口,22是容器的SSH服务监听端口: $ docker run -p 10022:22 -d sshd:ubuntu /run.sh 3ad7182aa47f9ce670d933f943fdec946ab69742393ab2116bace72db82b4895 启动成功后,可以在宿主主机上看到容器运行的详细信息: $ 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 在宿主主机(192.168.1.200)或其他主机上,可以通过SSH访问10022端口来登录容器: $ ssh 192.168.1.200 -p 10022 root@3ad7182aa47f:~#  👑👑👑结束语👑👑👑

相关文章

【毕业季】这四年一路走来都很值得——老学长の忠告

【毕业季】这四年一路走来都很值得——老学长の忠告...

【C++】vector类模拟实现

【C++】vector类模拟实现...

用过Apifox这个API接口工具后,确实感觉postman有点鸡肋......

用过Apifox这个API接口工具后,确实感觉postman有点鸡肋.........

【团队协作】都2022年了,前后端合作开发还不使用Apifox?

【团队协作】都2022年了,前后端合作开发还不使用Apifox?...

Vue项目的记录(十二)

Vue项目的记录(十二)...

[ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042

[ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042...