使用 dockerfile 制作镜像并发布

1,752 阅读2分钟

这是我参与8月更文挑战的第27天,活动详情查看:8月更文挑战

如果❤️我的文章有帮助,欢迎点赞、关注。这是对我继续技术创作最大的鼓励。更多往期文章在我的个人专栏

docker基本入门以后,可以试试打包 docker镜像 与 编写 dockerfile了。但在此之前我们首先来了解几个基本概念

docker镜像

线上 dockerhub 提供有两类仓库:用户仓库顶层仓库

  • docker 内部人员提供以及管理着顶层仓库
  • docker 用户根据自己实际需要创建用户仓库

但需要注意的是, 存放在 docker 仓库内的只是 Dockerfile 镜像文件。

创建镜像是需要额外命令构建镜像才能正常运行, 所以怎样去创建镜像呢?

构建docker镜像的有2种方法:

  • 命令 docker commit 根据 docker 容器变更生成 docker 镜像
  • 命令 docker build 通常配合 Dockerfile 配置文件一同使用, 根据Dockerfile 配置文件拉取生成。

但其实这里 创建镜像 并不推荐命令 docker commit
因为使用命令 docker commit 你总得依托别的 半成品镜像, 生成 docker 容器过以后, 进入容器执行命令修改成自己需要的容器 —— 这一构建过程不被记录、也不像 Dockerfile 配置文件 一样可以阅读。
所以这里使用 docker commit 只是方便演示, 但推荐使用更灵活,更易读的 Dockerfile 配置文件 来构建 docker 镜像.

创建一个centos镜像

使用命令 docker pull centos 拉取 线上 dockerhubcentos 系统镜像(官方镜像) docker pull centos 拉取 centos 镜像后,可以使用命令 docker images 查看机器上是否存在刚才已拉取的 centos 镜像

根据 centos 镜像, 使用命令 docker run 创建对应 docker 容器

docker run -dit -p 4000:8080 centos(镜像名 或 image id)
根据 centos 镜像创建 docker 容器, 并将容器内 4000端口 对应映射 为宿主机器 8080端口

进入容器并操作

使用命令 docker attach(镜像名 或 image id) 或命令 docker exec -it (镜像名 或 image id) 进入容器中

可以按照下面小例子创建一个前端项目,步骤如下:

  • npm install -g vue-cli 全局安装 vue-cli
  • 创建项目
    • vue create 选择手动配置
    • vue ui
  • npm run build 建立生成环境代码
  • npm run serve / npm run dev 启动webpack
    • vue serve demo.vue 单页应用启动

验证

在浏览器上输入http://服务器ip:8080 ,如果出现刚才编写的 vue 单页应用即可

将容器打包成镜像

使用命令 docker commit -a "vdo" -m "my vue app" 提交容器变更 命令参数说明: -a: 镜像作者 -c: 使用 Dockerfile指令 方式创建镜像 -m: 本次提交说明文字 -p: 在镜像提交变更时,容器暂停