创建docker镜像的两种方式
第一种方式(docker commit )
-
运行一个ubuntu的容器,如果电脑不存在ubuntu镜像,会先去Docker Hub下载
docker run -it ubuntu ##-it意思是运行这个容器的时候是否进入容器,如果不需要进入容器中,那么不需要添加-it。
-
容器建立完成之后,会进入到Ubuntu的Bash界面,在这个容器置中你可以安装软件以及一些程序。(打包变成镜像之后,意味着其他人可以重新下载这个镜像并且运行成为容器,那么就可以用里面的软件和程序。)
-
在新建的ubuntu容器中下载一个软件,然后打开另一个终端,通过docker ps展示所有容器,可以看到自己建立的ubuntu容器正在运行。然后继续在这个终端输入docker diff ubuntu的ID,这时候会看到一系列很长的列表,这个列表就是反映了对比原来的ubuntu,镜像改动了什么文件。(文件前面开头的A代表新增的文件,C代表更新了的文件,D代表移除了的文件。)
-
继续在这个终端输入docker commit ubuntu的ID 自己的名称 / 新镜像的名称:版本号TAG(1.0),回车之后新的镜像就生成了。通过docker image ls 查看本地的镜像列表,就可以看到自己新创建的镜像了。
-
进入到第一个终端,输入exit关闭Ubuntu容器。
第二种方式(通过Dockerfile建立镜像)
-
mkdir node_app新建一个node_app文件夹,cd node_app进入文件夹,vim hello world.js加一个js文件。vim Dockerfile创建Dockerfile新文件,在Dockerfile文件里面输入以下代码:
FROM ubuntu (以ubuntu已经创建的镜像为基础) RUN apt update && apt install nodejs -y(需要执行的语句) WORKDIR /app(定义工作的目录) COPY ..(表示把当前文件夹也就是node_app资料夹中的文件都复制到/app路径下) CMD ["node","/app/hello-world.js"] (表示容器运行起来的时候需要执行什么命令)
-
通过ls可以查看自己刚刚创建的两个文件。docker build -t 新的镜像名称 :TAG(版本号). (这个点表示Dockerfile的所在目录)。
-
运行完成后通过docker image ls就可以看到生成了新的镜像。
哔哩哔哩教程:https://www.bilibili.com/video/BV1v5411G7xc?from=search&seid=16720522331482720987