使用Dockerfile构建镜像

使用Dockerfile构建镜像

使用Dockerfile构建镜像

创建一个空目录 docker

mkdir docker

进入此目录

cd docker

创建并编辑DockerFile文件

vi touch Dockerfile

Dockerfile文件的内容如下:

from  node
label maintainer xxx@qq.com
RUN git clone -q https://github.com/docker-in-practice/todo.git 

workdir todo

RUN npm install > /dev/null
EXPOSE 8000
CMD ["npm","start"]

docekrfile文件执行是从上往下顺序执行的。

Dockerfile文件中的目录的作用如下:

FROM node  ⇽--- 定义基础镜像
LABEL maintainer ian.miell@gmail.com  ⇽--- 声明维护人员
RUN git clone -q https://github.com/docker-in-practice/todo.git  ⇽--- 克隆todoapp代码
WORKDIR todo  ⇽--- 移动到新的克隆目录;启动容器时用户所处的默认目录
RUN npm install > /dev/null  ⇽--- 执行node包管理器的安装命令(npm)
EXPOSE 8000  ⇽--- 指定从所构建的镜像启动的容器需要监听这个端口
CMD ["npm","start"]  ⇽--- 指定在启动时需要执行的命令

构建镜像

使用docker build命令构建镜像,“.”指定了Dockerfile文件在当前目录,如果dockerfile文件在其他目录,请指定dockerfile文件的位置

docker build .

输出结果如下:
在这里插入图片描述
最后一行输出了镜像的id

给镜像打tag

使用镜像id给镜像打标签,也可以理解给镜像取名,后续可以使用名称指定镜像

docker tag bfeafdb9d45b1ddf130fbb71d04193343b16f51a1d4c5ec4f7b70d41d9f79cbe todoapp

启动容器

docker run子命令启动容器,-p将容器的 8000 端口映射到宿主机的8000端口上,–name给容器赋予一个唯一的名字,最后一个参数是镜像

docker run -i -t -p 8000:8000 --name example todoapp

部分常见命令

docker ps -a

#查看已经启动和移除的容器,以及其ID和状态
docker ps -a

结果如下
在这里插入图片描述

docker start 容器名

# 重新启动容器,在后台运行
docker start example2

# 终止在后台运行的容器
docker stop example1

docker diff

#显示了自镜像被实例化成一个容器以来哪些文件受到了影响
docker diff

参考

  1. 《Docker实战》
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值