win10下docker desktop:使用dockerfile基于CentOS:8创建可以使用vim的镜像

简介: win10下docker desktop:使用dockerfile基于CentOS:8创建可以使用vim的镜像

使用dockerfile基于CentOS:8创建可以使用vim的镜像

问题描述:Win10家庭版系统,使用docker desktop,基于centos:latest版本创建镜像时报错。

PS C:\Users\cong\Desktop> docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       latest    5d0da3dc9764   8 months ago   231MB

我的centos镜像是直接pull的默认latest版本,应该是centos:8。

在桌面的mydocker文件夹中创建一个centos_dockerfile.txt文件:

FROM centos:latest
MAINTAINER  zcong <zcong@zcongfly.cn>
RUN yum install -y vim
WORKDIR /usr
CMD /bin/bash

根据dockerfile文件自定义centos:8镜像,要求:

1.默认登陆路径为/usr

2.可以使用vim命令(需要另外安装的第三方包)

运行代码:

PS C:\Users\cong\Desktop\mydocker> docker build -f ./centos_dockerfile.txt -t centos:latest

报错:

Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

百度了下原因,是因为centos:8版本更新后没有了appstream,镜像源出现点问题。

我找到的所有办法都需要在Linux系统下操作/etc/yum.repos.d这个文件夹,然而我的电脑是win10系统,根本没有这个文件夹!

思考了一下,dockerfile文件的那几行命令,其实就是以centos:8为父镜像,创建一个可以使用vim命令的新镜像,创建过程执行RUN yum install -y vim下载对应的包。上一步骤就是在这一命令处报错,告诉我centos:8找不到urls

好吧,那我就照着当前latest版本的centos镜像,搞一个有urlscentos:8出来。

网上已经有很多解决方法,这里采用https://blog.csdn.net/xiaocao_debug/article/details/123041407的方法将yum设置为阿里云的镜像源。

基于centos创建一个容器c1:

PS C:\Users\cong\Desktop\mydocker> docker run -it --name=c1 centos:latest /bin/bash

进入到c1容器中,找到并/etc/yum.repos.d文件夹:

[root@1eae32974792 /] cd /etc/yum.repos.d

创建文件备份:

[root@1eae32974792 yum.repos.d] mkdir backup
[root@1eae32974792 yum.repos.d] mv *repo backup/
[root@1eae32974792 yum.repos.d] ls -lh
total 4.0K
drwxr-xr-x 2 root root 4.0K May 16 05:40 backup

下载阿里云文件:

[root@1eae32974792 yum.repos.d] curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2600  100  2600    0     0   2610      0 --:--:-- --:--:-- --:--:--  2607
[root@1eae32974792 yum.repos.d]# ls -lh
total 8.0K
-rw-r--r-- 1 root root 2.6K May 16 05:41 CentOS-Base.repo
drwxr-xr-x 2 root root 4.0K May 16 05:40 backup

更新源里面的地址:

[root@1eae32974792 yum.repos.d] sed -i -e "s|mirrors.cloud.aliyuncs.com|mirrors.aliyun.com|g " /etc/yum.repos.d/CentOS-*
[root@1eae32974792 yum.repos.d] sed -i -e "s|releasever|releasever-stream|g" /etc/yum.repos.d/CentOS-*

生成缓存:

[root@1eae32974792 yum.repos.d] yum clean all
[root@1eae32974792 yum.repos.d] yum makecache

至此构建了一个更新了yum阿里源的容器c1,下面将容器c1转换为镜像mycentos:8

PS C:\Users\cong\Desktop> docker ps -a
CONTAINER ID   IMAGE           COMMAND                  CREATED       STATUS                  PORTS     NAMES
1eae32974792   centos:latest   "/bin/bash"              5 hours ago   Up 8 minutes                      c1
PS C:\Users\cong\Desktop> docker commit 1eae32974792 mycentos:8
sha256:1a595a092da8e52a1a44141c972c11490997279dc9d3dae2860a1a42663ce016
PS C:\Users\cong\Desktop> docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
mycentos     8         1a595a092da8   7 seconds ago   317MB
centos       latest    5d0da3dc9764   8 months ago    231MB

基于新创建的镜像mycentos:8,修改dockerfile.txt文件并根据该文件自定义镜像zc_centos:1.0

FROM mycentos:8
MAINTAINER  zcong <zcong@zcongfly.cn>
RUN yum install -y vim
WORKDIR /usr
CMD /bin/bash
PS C:\Users\cong\Desktop\mydocker> docker build -f ./centos_dockerfile.txt -t zc_centos:1.0

看一下镜像是否成功创建:

PS C:\Users\cong\Desktop\mydocker> docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
zc_centos    1.0       3eec5f13e8be   44 seconds ago   402MB
mycentos     8         1a595a092da8   14 minutes ago   317MB
centos       latest    5d0da3dc9764   8 months ago     231MB

根据新创建的zc_centos:1.0镜像创建容器zc_c1

PS C:\Users\cong\Desktop\mydocker> docker run -it --name=zc_c1 zc_centos:1.0

进入容器zc_c1,验证能否使用vim命令:

[root@86d20d7fd932 usr] cd ~
[root@86d20d7fd932 ~] vim a.txt

成功进入vim编辑界面。

目录
相关文章
|
9月前
|
安全 Linux
CentOS下载ISO镜像的方法
访问CentOS官方网站(https://www.centos.org/download/),在“Downloads”页面找到ISO镜像下载链接,选择所需版本和架构(如x86_64)开始下载。CentOS分为Linux版和Stream版,前者每两年发行一次并提供10年安全维护,后者为滚动更新。旧版本可在Vault(https://vault.centos.org/)下载。建议选择DVD格式镜像,包含完整系统和常用软件。
9960 14
CentOS下载ISO镜像的方法
|
8月前
|
运维 网络安全 文件存储
找不到类似 Docker Desktop 的 Web 管理界面?试试这些开源方案
Docker Desktop 是本地容器化开发的利器,但存在无法通过 Web 远程管理、跨平台体验不一致等问题。为此,推荐几款轻量级、可 Web 化管理的 Docker 工具:Portainer 功能全面,适合企业级运维;CasaOS 集成应用商店和 NAS 功能,适合家庭/个人开发环境;Websoft9 提供预集成环境,新手友好。这些工具能有效提升容器管理效率,满足不同场景需求。
453 3
|
9月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
304 20
|
9月前
|
网络协议 Linux 网络安全
docker centos镜像 npm安装包时报错“npm ERR! code ECONNRESET”
通过上述步骤,您可以有效解决在 Docker 中使用 CentOS 镜像安装 npm 包时遇到的 "npm ERR! code ECONNRESET" 错误。希望这些方法能帮助您顺利进行 npm 包的安装。
620 26
|
10月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
566 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
10月前
|
缓存 Linux
CentOS-6的iso下载地址镜像yum源
通过上述步骤,您可以成功下载CentOS 6的ISO镜像文件,并配置适用于CentOS 6的YUM源。尽管CentOS 6已经停止更新,但使用这些镜像和YUM源配置,可以继续在需要的环境中使用和维护CentOS 6系统。
5065 20
|
11月前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
341 5
|
存储 Linux Docker
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
914 2
|
安全 Linux Shell
docker运行centos提示Operation not permitted
通过上述步骤,可以有效排查和解决在Docker中运行CentOS容器时遇到的"Operation not permitted"错误。这些措施涵盖了从权限配置、安全策略到容器运行参数的各个方面,确保在不同环境和使用场景下都能顺利运行容器。如果你需要进一步优化和管理你的Docker环境
1117 3
下一篇
oss云网关配置