如何自己制作一个镜像(使用busybox作为基础镜像)

A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings.

使用busybox作为基础镜像+自己编写一个脚本作为业务核心代码=完成一个自己的镜像

 一、先编写一个小脚本,用来做镜像的核心代码
[root@docker ~]# mkdir /Dockerfile
[root@docker ~]# cd /Dockerfile/
[root@docker Dockerfile]# ls 
[root@docker Dockerfile]# 
# 作为核心代码测试
[root@docker Dockerfile]# cat while.sh 
#!/bin/bash

i=1
while true
do 
	echo "hello world,sanchuang$i"
	let i++
	sleep 1
done
 二、编辑Dockerfile文件

[root@docker Dockerfile]# vim Dockerfile 
[root@docker Dockerfile]# cat Dockerfile 
#指定基础镜像
FROM busybox
#指定了在容器内部进行操作时的工作目录,将当前工作目录设置为根目录(/)。
WORKDIR /
#复制宿主机当前目录下的所有文件和文件夹到容器里的/目录下  docker cp
COPY .  /
#制作镜像的时候需要执行的命令 这些文件会留在做好的镜像里
#需要注意的是,这些命令可能不是必需的,具体要根据实际需求来决定是否需要执行这些操作。
RUN touch sc.txt && mkdir sanchuang && sleep 10
#指定容器启动的时候需要执行的命令
#/bin/sh  while.sh
ENTRYPOINT ["/bin/sh","/while.sh"]
三、制作镜像
#-t  指定镜像的名字  1.0版本  
[root@docker Dockerfile]# docker build -t scbusybox:1.0 .
[+] Building 50.4s (8/8) FINISHED                                                                                                                        docker:default
 => [internal] load build definition from Dockerfile                                                                                                               0.1s
 => => transferring dockerfile: 489B                                                                                                                               0.0s
 => [internal] load .dockerignore                                                                                                                                  0.1s
 => => transferring context: 2B                                                                                                                                    0.0s
 => [internal] load metadata for docker.io/library/busybox:latest                                                                                                 34.9s
 => [internal] load build context                                                                                                                                  0.0s
 => => transferring context: 613B                                                                                                                                  0.0s
 => [1/4] FROM docker.io/library/busybox@sha256:5acba83a746c7608ed544dc1533b87c737a0b0fb730301639a0179f9344b1678                                                   3.1s
 => => resolve docker.io/library/busybox@sha256:5acba83a746c7608ed544dc1533b87c737a0b0fb730301639a0179f9344b1678                                                   0.0s
 => => sha256:5acba83a746c7608ed544dc1533b87c737a0b0fb730301639a0179f9344b1678 2.29kB / 2.29kB                                                                     0.0s
 => => sha256:62ffc2ed7554e4c6d360bce40bbcf196573dd27c4ce080641a2c59867e732dee 527B / 527B                                                                         0.0s
 => => sha256:beae173ccac6ad749f76713cf4440fe3d21d1043fe616dfbe30775815d1d0f6a 1.46kB / 1.46kB                                                                     0.0s
 => => sha256:5cc84ad355aaa64f46ea9c7bbcc319a9d808ab15088a27209c9e70ef86e5a2aa 772.79kB / 772.79kB                                                                 2.8s
 => => extracting sha256:5cc84ad355aaa64f46ea9c7bbcc319a9d808ab15088a27209c9e70ef86e5a2aa                                                                          0.2s
 => [2/4] COPY .  /                                                                                                                                                0.2s
 => [3/4] RUN touch sc.txt && mkdir sanchuang && sleep 10                                                                                                         12.0s
 => exporting to image                                                                                                                                             0.1s
 => => exporting layers                                                                                                                                            0.0s
 => => writing image sha256:4643185788a5af4d7a73d234a6c3aac11af259db05fd643835c357b327b504b4                                                                       0.0s
 => => naming to docker.io/library/scbusybox:1.0 
四、查看制作好的镜像
[root@docker Dockerfile]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
scbusybox     1.0       4643185788a5   24 seconds ago   1.24MB
mysql         5.7.43    92034fe9a41f   2 weeks ago      581MB
hello-world   latest    9c7a54a9a43c   3 months ago     13.3kB
nginx         latest    605c77e624dd   20 months ago    141MB
golang        latest    276895edf967   20 months ago    941MB
redis         latest    7614ae9453d1   20 months ago    113MB
python        latest    a5d7930b60cc   20 months ago    917MB
五、使用制作好的镜像
[root@docker Dockerfile]# docker run -it  --rm  --name scbusybox-1 scbusybox:1.0
hello world,sanchuang1
hello world,sanchuang2
hello world,sanchuang3
hello world,sanchuang4
hello world,sanchuang5
hello world,sanchuang6
hello world,sanchuang7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值