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编辑界面。

目录
相关文章
|
19天前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
65 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
1月前
|
Linux 开发工具
成功解决:CentOS 7中如何配置修改Vim
这篇文章介绍了如何在CentOS 7系统中配置和修改Vim编辑器的设置。文章首先指导读者如何检查Vim是否已经安装,如果未安装完全,提供了安装Vim的命令。接着,文章详细说明了如何编辑`/etc/vimrc`文件来配置Vim,包括设置显示行号、显示当前模式、光标位置信息、自动缩进和语法高亮等。最后,文章通过对比展示了配置前后使用vi和vim打开相同文本的效果差异,强调了Vim配置后的优势。
成功解决:CentOS 7中如何配置修改Vim
|
1月前
|
存储 关系型数据库 Linux
在CentOS 7上安装和使用Docker的方法
在CentOS 7上安装和使用Docker的方法
151 1
|
1月前
|
Ubuntu Linux 测试技术
下载ISO镜像的方法 Debian、Red Hat 、CentOS、Ubuntu、Kali Linux🌐
Debian、Red Hat、CentOS、Ubuntu与Kali Linux均为知名Linux发行版。下载Debian须访问官网并按计算机架构选ISO文件。Red Hat下载通常需订阅账户,可从官网登录后获取。CentOS可从官网或镜像站点下载,注意CentOS 8已停更。Ubuntu下载简便,官网直接选取版本及架构即可。Kali Linux专为安全测试设计,官网提供直接下载ISO镜像服务。
188 0
|
1月前
|
Linux Docker 容器
在CentOS上安装Docker的指南:
【8月更文挑战第19天】介绍在CentOS上安装Docker的过程:首先确认CentOS版本兼容,建议使用7或更高版本,并通过`yum update -y`更新系统。安装Docker时推荐使用官方仓库方法,需安装`yum-utils`等工具,设置Docker仓库简化安装流程。可选配置国内镜像源(如阿里云)提升下载速度。亦可通过RPM包离线安装。安装后启动Docker服务并通过`systemctl enable docker`设为开机启动。最后,运行`docker run hello-world`验证安装。如遇问题,使用`sudo journalctl -u docker`查看日志排错。
214 0
|
1月前
|
Linux Docker 容器
在CentOS操作系统上使用yum安装/使用/卸载Docker容器引擎
在CentOS操作系统上安装、配置、使用和卸载Docker容器引擎的详细步骤,包括配置Docker镜像加速的方法。
169 0
|
1月前
|
Linux 应用服务中间件 Shell
在CentOS 7上安装和使用Docker Compose的方法
在CentOS 7上安装和使用Docker Compose的方法
93 0
|
1月前
|
Linux 数据安全/隐私保护 Docker
MQTT(EMQX) - Linux CentOS Docker 安装
MQTT(EMQX) - Linux CentOS Docker 安装
117 0
|
29天前
|
Unix Linux 开发工具
在Linux中,有哪些基本的 Vim 命令?
在Linux中,有哪些基本的 Vim 命令?
|
10天前
|
存储 Linux 编译器
linux中vim介绍以及常用命令大全
linux中vim介绍以及常用命令大全
34 8