首页 > 系统相关 >docker安装linux镜像制作,制作Docker镜像的两种方式

docker安装linux镜像制作,制作Docker镜像的两种方式

时间:2022-10-04 16:58:08浏览次数:85  
标签:centos root dockerfile linux 镜像 docker yuanhuan 制作

docker tag yuanhuan/newcontainer1 docker账号名称/dev:77


docker push docker账号名称/dev:77

  

转载自:https://blog.csdn.net/weixin_39821604/article/details/116921561?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-116921561-blog-116585684.pc_relevant_aa_2&spm=1001.2101.3001.4242.1&utm_relevant_index=3

 

 

此文已由作者朱笑天授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验。

一、使用docker commit命令制作docker镜像

1. pull一个centos6.6的基础镜像,并运行一个docker container,然后在其中进行定制化(安装、配置服务等);[root@localhost ~]# docker pull centos:6.6

Pulling repository centos

8b44529354f3: Download complete

f1b10cd84249: Download complete

Status: Downloaded newer image for centos:6.6

[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

centos 6.6 8b44529354f3 4 days ago 202.6 MB

centos centos6.6 8b44529354f3 4 days ago 202.6 MB

[root@localhost ~]# docker run -i -t centos:6.6 bash

[root@b42c1ba929a9 /]# ls

bin dev etc home lib lib64 lost+found media mnt opt proc root sbin selinux srv sys tmp usr var

[root@b42c1ba929a9 /]# mkdir /tmp/test.txt

[root@b42c1ba929a9 /]# exit

exit

接下来,查看一下container的改动:[root@localhost ~]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

b42c1ba929a9 centos:6.6 "bash" About a minute ago Exited (0) 22 seconds ago berserk_mcclintock

804a56ce8008 f1b10cd84249 "/bin/echo hello" 22 minutes ago test

[root@localhost ~]# docker diff b42c1ba929a9

C /tmp

A /tmp/test.txt

C /root

A /root/.bash_history

2. 执行docker commit命令创建一个镜像:[root@localhost ~]# docker commit -m "new container" b42c1ba929a9 yuanhuan/newcontainer1

07b146e0be9e98c253122784c3837dd1604f7692e794f3601dad747d41901cd4

[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

yuanhuan/newcontainer1 latest 07b146e0be9e 43 seconds ago 202.6 MB

centos 6.6 8b44529354f3 4 days ago 202.6 MB

centos centos6.6 8b44529354f3 4 days ago 202.6 MB

3. 登录docker,并将该镜像push到docker仓库:[root@localhost ~]# docker login

Username: yuanhuan

Password:

Email: [email protected]

Login Succeeded

[root@localhost ~]# docker push yuanhuan/newcontainer1

The push refers to a repository [yuanhuan/newcontainer1] (len: 1)

Sending image list

Pushing repository yuanhuan/newcontainer1 (1 tags)

f1b10cd84249: Image already pushed, skipping

8b44529354f3: Image already pushed, skipping

07b146e0be9e: Image successfully pushed

Pushing tag for rev [07b146e0be9e] on {https://cdn-registry-1.docker.io/v1/repositories/yuanhuan/newcontainer1/tags/latest}

成功之后,就可以登录docker页面,查看到刚刚制作的镜像了。

1540954273124073.jpg

二、使用dockerfile制作镜像

创建dockerfile文件:dockerfile.txt,内容如下:FROM centos

MAINTAINER YH, http://yuanhuan.blog.51cto.com

RUN yum install passwd openssl openssh-server -y

RUN echo '123456' | passwd --stdin root

RUN ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''

RUN ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''

RUN sed -i '/^session\s\+required\s\+pam_loginuid.so/s/^/#/' /etc/pam.d/sshd

RUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.ssh

EXPOSE 22

CMD ip addr ls eth0 | awk '{print $2}' | egrep -o '([0-9]+\.){3}[0-9]+';/usr/sbin/sshd -D

简要说明:该dockerfile的主要目的是开启sshd服务,以便可以ssh登录,并且设置了root用户的密码。

然后执行下面的命令制作一个镜像:

docker build -t centos:autosshd - < dockerfile.txt

成功之后就可以用docker images查看镜像列表了。

两种方式比较:

使用commit命令比较简单,相当于docker根据container内部执行的命令自动生成了dockerfile,并进行了build,比较适合对dockerfile不熟悉的用户;

而dockerfile的方式显得稍有点复杂,但是比较适合批量处理的场景。dockerfile一次写入,多次运行。

网易云容器服务为用户提供了无服务器容器,让企业能够快速部署业务,轻松运维服务。容器服务支持弹性伸缩、垂直扩容、灰度升级、服务发现、服务编排、错误恢复及性能监测等功能。点击可免费试用

更多网易技术、产品、运营经验分享请点击。

   

标签:centos,root,dockerfile,linux,镜像,docker,yuanhuan,制作
From: https://www.cnblogs.com/hd92/p/16754021.html

相关文章

  • 如何在 UE4 中制作一扇自动开启的大门
    前言相信很多玩过游戏的朋友都知道,在玩游戏的过程中,如果我们被一道门给挡住了去路,只要按下某一个按键,门就会自动的开启。于是,今天我就带大家来制作一道会自动开启的大门吧!场......
  • KAL1 LINUX 官方网站 --- 首页
    最先进的渗透测试发行版KaliLinux是一个开源的,基于Debian的Linux发行版,面向各种信息安全任务,如渗透测试,安全研究,计算机取证和逆向工程。 行业标准KaliLinux不是指它的......
  • linux配置前端npm yarn
    linux配置前端npmyarn这几天更新了windows系统,安装一下wsl,试一下之前就想用的zsh,感觉还不错。之后就直接用Linux接管windows命令。现在安装一下前端常用的工具npm......
  • linux上安装Nginx教程
    可以参看这篇文章,讲的还挺详细的https://mp.weixin.qq.com/s?src=11&timestamp=1664862961&ver=4083&signature=AwBtRAlZqq-6OZhpt54f*9dYKgC1a-ELmTRisXMt8oCDb-it*3mDOtA......
  • linux常用命令
    linux开放指定端口命令 1、开启防火墙systemctlstartfirewalld 查看防火墙状态systemctlstatusfirewalld 2、开放指定端口firewall-cmd--zone=public--add-por......
  • 8-Linux软件管理
    关于软件运行和编译ABIABI-ApplicationBinaryInterfaceWindows与Linux的ABI不兼容W:PEL:ELF范例查看Linxu内置文件的格式查看Windows环境中创建的文件linux中不同版本的......
  • PCB制作时的EMC避坑学习《PCB电磁兼容技术设计实践》
    第二章旁路、去耦和储能1.电容器等效电感称为等效串联电感(ESL),不过现在用的很少了。2.在选择电容时,应该选择其ESR,ESL都很小的电容。3.一定要尽量减少电容端的引线。4.......
  • 使用云服务器搭建linux环境
    (文章目录)一、关于云服务器的挑选首先来说,挑选云服务器,有阿里云,华为云以及腾讯云,博主建议挑选腾讯云(因为价格在这几家最低)点击这里进入腾讯云校园计划发现2核2G......
  • Linux命令
    命令编译辅助Tab键#自动补齐反斜杠\#强制换行快捷键Ctrl+U#清空至行首快捷键Ctrl+K#清空至行尾快捷键Ctrl+L#清屏快捷键Ctrl+C#取消本次命......
  • Linux内存占用过高排查过程
    1查看服务器状态系统是CentOSLinuxrelease7.5.1804(Core)使用top命令看了下系统的状态系统的整体负载和cpu并不高,但是内存使用比较高(总8G使用了7.2G)。使用M按内存......