Linux下新手构建镜像笔记(一)
最近由于项目需要,新接触到linux下镜像的构建,简单记录下笔记。
法一**:使用Dockerfile构建镜像**
①、构建之前在指定目录mkdir XX
(新建一个文件夹),在此文件夹里使用命令vim Dockerfile
(PS:切记Dockerfile所在文件夹下无其它杂文件,否则构建镜像时会将杂文件一起打包进镜像,导致镜像非常大)
②、Dockerfile里都有啥?
eg:如下图,其中 FROM+镜像名
(表示拉取的基础镜像);
RUN
+笔者想要执行的操作
(如配置程序执行的依赖环境);
COPY
+ XX文件orXX.py(文件所在目录路径) /tmp(指定要拷贝到的目的路径)
(COPY
和ADD
命令都是复制,但ADD可以自行解压压缩包);
CMD
+ 参数1 参数2
(容器启动后需要执行的命令)。
还有其它命令参见这位大神的博客。docker常用命令
**法二:**直接拉取一个已有镜像,运行其容器,然后根据需要进行修改
主要使用到的命令如下:
①加载镜像: docker load -i XXX.tar(镜像名)
结果:显示一串ID:c04bXXX
②运行容器: docker run -itd --name XX(自己取名字) c04bXXX(上面加载镜像后的ID) /bin/bash
结果:显示一串ID:8fdXXX
③复制需要替换的文件: docker cp /XX/XX/.PY(路径) 8fdXXX:/XX/XX.py(路径)
(直接修改容器内部文件的话就是如下命令:
先docker exec -it 8fdXXX bash
docker commit XX(新的镜像名)
然后进入⑥)
④docker export 8fdXXX -o XX.tar(自己取容器名称)
⑤docker import XX.tar XXX:v1.0(容器版本号)
结果:显示新的容器的ID:caf3dXX
⑥docker save caf3dXX -o XX.tar(新的镜像名)
⑦chmod 777 -R XX.tar(给刚刚新构建的镜像赋予root权限)
进入容器命令:docker exec -it 775c7c9ee1e1 /bin/bash