docker commit -a="leilei" -m="第一次打包镜像,打包后直接访问还会404吗" 231f2eae6896 tom:1.0
6. Docker镜像创建的两种方法6.1. 使用commit 命令创建docker镜像创建一个nginx镜像sudo docker run --name webserver -d -p 80:80 nginx
运行完命令 创建成功然后我们访问浏览器
假设我们不喜欢这个页面 想修改这个页面我们可以进入docker容器内然后 输入命令sudo docker exec -it webserver bash
echo '<h1>hello,docker!</h1>' >/usr/share/nginx/html/index.html
然后就修改了页面了docker diff命令我们修改了文件即修改了存储层可以通过命令查看刚刚有哪些操作
sudo docker diff webserver
Docker commit 命令Docker commit 命令可以叠加内容从而重新生成一个镜像docker commit [选项]<容器ID或容器苗> [<仓库名>][:<标签>]
sudo docker commit --author "lzc <hybpjx@163.com>" --message "modify Default page" webserver nginx:v2
这个时候就可以通过
sudo docker images
来查看了或者通过
sudo docker histroy nginx:v2
我们再创建一个为81端口的nginx容器
sudo docker run --name web2 -d -p 81:80 nginx:v2
然后访问 192.168.2.91:81可以发现 页面还是一样的 说明镜像创建成功!!!! 慎用 docker commit 命令使用docker commit 命令虽然可以比较直观的帮助理解镜像分层的概念 但是实际开发环境不会这么使用因为由于命令执行了 很多文件发生了改动 这还仅仅是简单错误 如果是安装文件 编译构建 那么镜像会非常臃肿,此外 使用docker commit 意味着 所有对镜像的操作都是黑箱操作,生成的镜像也被称之为 黑箱操作
6.2 使用Dockerfile 创建docker镜像什么是dockerfileDockerfile 是一个文本文件 。其包含了一条一条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应该如何构建 。命令:必须命名为Dockerfile
mkdir mynginxcd mynginxtouch Dockerfile
然后编辑此文件FROM nginxRUN echo '<h1>Hello,world</h1>' > /usr/share/nginx/html/index.html
然后执行命令(记住有个 点 . 代表执行dockerfile的目录)sudo docker build -t nginx:v3 .
我们可以把镜像上传到docker中去https://hub.docker.com/repositories
【docker常用配置以及命令】在我们上传镜像 要确保我们的docker 账号是登录状态的
- 登录命令命令
sudo docker login -u xxx -p xxx
- 修改tag命令
sudo docker tag nginx:v3 hybpjx/nginxv3:v3
sudo docker push hybpjx/nginxv3:v3
即可完成上传FROM 和RUN
【FROM指定基础镜像】基础镜像是必须指定的 。而FROM就是指定基础镜像,因此应该Dockfile中FROM是必备的指令 。并且必须为第一条指令 。
【Run指令的两种格式】shell 格式:RUN<命令>,就像是再命令行中输入的命令一样 。exec格式:RUN["可执行文件","参数1","参数2"],这更像是函数中调用的格式比如
RUN apt-get updateRUN apt-get install vim
就是创建了两层镜像 这样毫无意义最大不能超过127层的正确写法为:RUN apt-get install \ && apt-get install vim
注意: 任何无关的文件都要清理经验总结扩展阅读
- 系统整理K8S的配置管理实战-建议收藏系列
- 联想拯救者R7000 2021款官方配置_联想拯救者R7000 2021款升级情况
- 第2-1-3章 docker-compose安装FastDFS,实现文件存储服务
- 华为matex2参数_华为matex2参数配置详情
- 荣耀Magic3最新消息_荣耀Magic3配置消息
- LAPM概述及配置
- 红米k30pro参数_红米k30pro参数配置详情
- 第2-1-2章 传统方式安装FastDFS-附FastDFS常用命令
- 7.Vue常用属性
- 连接房屋框架用的什么钉