Docker镜像制作

通过Dockerfile创建自定义镜像,包括从基础镜像CentOS开始,安装net-tools,构建可执行ifconfig的镜像,以及定制包含nginx服务的镜像,同时暴露80端口并设置启动命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过Dockerfile构建镜像

自定义镜像需要写Dockerfile文件,如果文件名不为Dockerfile,则需要使用-f来指定文件名。

原理

使用基镜像生成一个临时容器,然后在这个临时容器里执行Dockerfile文件里定义的命令,完成所有操作后把临时容器导出为一个新的镜像,最后删除该临时镜像。

Dockerfile常用命令
  • FROM:指定基镜像
  • MAINTAINER:维护者的信息
  • RUN:在临时容器里执行的操作系统命令
  • ADD file /path/:把物理机里file拷贝到镜像的指定目录 /path
  • COPY file /path/:把物理机里file拷贝到镜像的指定目录 /path
  • ENV:指定变量
  • USER:指定容器内部以哪个用户运行进程
  • VOLUME:指定数据卷(所指文件夹会在创建的容器里创建,并随机绑定到物理机的随机目录)
  • EXPOSE:指定镜像容器所使用的端口
  • CMD:指定镜像创建出来的容器运行什么进程
创建可以执行某命令(如ifconfig)的centos镜像
  1. 在临时容器里执行安装操作即可,Dockerfile内容如下
FROM hub.c.163.com/library/centos
MAINTAINER sun
RUN yum install net-tools -y
CMD ["/bin/bash"]
  1. 构建语法如下
docker build -t 镜像名:tag . -f file
在此处为:
docker build -t centos:v1 .
  1. 查看镜像
docker images

在这里插入图片描述

  1. 测试镜像
docker run --rm -it centos:v1

ifconfig

在这里插入图片描述

自定义nginx镜像
  1. 拷贝所需要的repo文件
cd /etc/yum.repos.d/
tar zcf /root/repo.tar.gz *

在这里插入图片描述

  1. 创建index.html
vi index.html
hello world!
  1. 写dockerfile1,内容如下
    注意:容器里nginx作为守护进程运行的话,必须要以nginx -g daemon off这个格式运行
FROM hub.c.163.com/library/centos
MAINTAINER sun
RUN rm -rf /etc/yum.repos.d/*
ADD repo.tar.gz /etc/yum.repos.d/
RUN yum install -y nginx
ADD index.html /usr/share/nginx/html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]
  1. 构建新镜像
docker build -t nginx:v1 . -f dockerfile1

在这里插入图片描述

  1. 验证镜像
docker run -d --name=web --restart=always -p 80:80 nginx:v1

在浏览器访问:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值