如何创建Docker镜像

本文讲述了作者在使用Docker过程中遇到的问题,如apt-get缺失、元数据下载失败和路径问题。通过替换包管理工具、调整镜像版本以及正确使用cd命令,作者成功解决了这些问题并演示了如何运行镜像并配置端口映射。

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

1. 编写Dockerfile

(Dockfile 是Docker镜像设置文件)

1.1 首先创建并进入到example目录

mkdir example
cd example

1.2 将如下内容保存为Dockerfile文件

vi Dockerfile

 2. 使用build命令创建镜像

(在保存Dockerfile文件的example目录钟执行如下命令)

sudo docker build --tag hello:0.1 .

运行这条命令我出现了3个问题:

2.1、提示我"/bin/sh: apt-get: command not found"

解决办法:我检查了我的LINUX版本后,发现我的包安装工具是yum,所以要把apt-get更换成yum

2.2、更换好了之后,出现了第二个问题,"Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist"

解决办法1:更换了镜像源,并没有解决问题解决问题,具体可参考问题解决:Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist:...-腾讯云开发者社区-腾讯云 (tencent.com)

解决办法2:最后发现,我当时是centos:latest,默认是centos的最新版本,但是我的虚拟机是centos7的版本,修改了Dockfile文件后问题解决。 

 2.3、接着指令没有问题之后,我需要回到example文件夹,但是发现cd example会出现错误提示"bash: cd: example: 没有那个文件或目录"

解决办法:首先”/“是根目录,”~“是家目录,我比对了之前顺利进入example文件夹的方式,发现之前是显示为"~"的情况下进入的,所以我输入cd ~后解决该问题。

3. 运行该镜像

sudo docker run --name hello-nginx -d -p 80:80 -v /root/data:/data hello:0.1

-d: 指在后台运行容器

-p 80:80: 将主机的80号端口与容器的80号端口连接起来,并暴露到外部。(连接http://<主机 IP>:80 就会连接到容器的80端口)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

New Balance

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值