docke学习之:安装docker并下载镜像启动容器

本文详细介绍如何使用Docker在本地测试机上快速搭建包括Zookeeper集群、MySQL、Redis、Mongo在内的开发环境,解决了因环境搭建复杂而影响开发效率的问题。通过Docker,实现了环境的一致性和快速试错。

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

背景:


在工作开发时,因为某些项目需要分布式的框架或者一些集群,由于开发与op沟通成本和时间问题,常常无法快速得到一个开发可用的测试环境,那么就需要程序员在自己的测试机上安装一些集群和工具,但是由于测试机只有一台,集群例如zookeeper集群无法安装,所以选择使用docker来解决本地测试机搭建可用的开发环境。
安装内容:
zookeeper集群(三台)

mysql

redis

mongo
 

安装docker:

一:首先确认linux下的yum是否为最新
 使用 sudo 或 root 权限的用户登入终端。

3.确保yum是最新的

 命令:$ yum update
二:安装docker 
如果不是root权限下执行以下命令:

sudo yum install docker

如果是root权限下执行以下命令:

yum install docker

 

提示是否下载:y

Total download size: 27 M
Installed size: 87 M
Is this ok [y/d/N]: y

安装成功提示 :Complete!

三:下载容器并启动

1、不是root权限下执行:sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

1、是root权限下执行:curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

2、sudo chmod +x /usr/local/bin/docker-compose

3、启动docker

不是root权限下执行:sudo systemctl start docker

root权限下执行:systemctl start docker

四:下载docker镜像项目文件zip:

此处下载了同事提供的私有gitlab镜像项目文件,此处不做粘贴。
在local目录下创建文件夹
命令:mkdir docker-service

将镜像zip上传到文件夹

命令:rz 选择文件

解压zip文件:

先检查是否有解压功能

命令:whereis unzip

返回以下则表示可以使用unzip解压文件

unzip: /usr/bin/unzip /usr/share/man/man1/unzip.1.gz

加压zip文件命令(在zip所在文件夹下):unzip 文件名
可以修改以下解压之后的文件名(可以不进行此操作)

命令:mv 旧文件夹名  新文件夹名

执行镜像文件:

命令:/usr/local/bin/docker-compose up -d

成功:

Creating marketing_mysql      ... done
Creating marketing-zookeeper1 ... done
Creating marketing-zookeeper3 ... done
Creating marketing_mongo      ... done
Creating marketing_redis      ... done
Creating marketing-zookeeper2 ... done
Creating marketing_phpmyadmin ... done
 

2.1 Build once,run anywhere

这个官网对docker的宣传,虽然在实际使用docker在构建的过程中会遇到各种因为网络环境,系统环境或者其他各种不可抗力因素导致镜像构建失败。但是当镜像构建成功之后真的就是构建一次,到处运行。

配合docker-compose来用,你可以在任何地方3秒(不考虑镜像下载时间)启动一整套LNMP环境或者Hadoop+Hbase+Spark+Kafka等任何你提前构建好集群环境,而且这些环境是绝对一致的。

另外,当你要学习一个东西的时候,比如Jenkins,你可以直接拉去Jenkins镜像,1秒启动,完全不用考虑搭建一个Jenkins环境带来的各种成本。

实际上在写Dockerfile和docker-compose.yml文件的过程中可能要比在虚拟里里面搭建环境的成本还要高,但是在这里是一劳永逸的,而且是可以共享的。

2.2 使用docker带来哪些收获

docker可以快速试错和尝试,当我想了解Jenkins的功能的时候我只需要把镜像下载下来,快速启动,按照自己的想法大胆尝试,一旦配置错误无法恢复的时候只要重新启动一个新的镜像就ok了

docker保证环境的绝对一致性可以大大减少环境搭建和环境版本以及依赖不一致的问题。

3. How

怎么使用docker

3.1 安装

以centos为例,centos7已包含docker包,可以只用使用yum安装

#yum install docker

如果提示找不到包可以按照官网教程添加docker源,ce是社区版 ee为企业版

#yum install yum-utils

#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

#yum install docker-ce

3.2 启动

启动docker

#systemctl start docker

开机自启动docker

#systemctl enable docker

3.3 常用命令

3.3.1 pull

使用docker pull 可以在镜像仓库中拉取镜像,如果不加tag,默认拉取的是latest的镜像

#docker pull hello-world

3.3.2 run

使用docker run 可以使镜像作为容器运行起来,可以加 -id 参数使镜像在后台运行,不输出内容到控制台。

容器在启动之后容器里必须有一个进程是以前台模式运行的,要不容器会以为所有的事情都做完了,就会自动停止。

#docker run hello-world

3.3.3 ps

使用docker ps 可以查看正在运行的容器,使用 -a 参数可以查看所有的容器

#dokcer ps -a

3.3.4 exec

使用docker exec 可以进入到容器内容,使用 -it 参数会分配一个新的终端,后面必须指定sh类型。

# docker exec -it [容器id] bash

3.3.5 other

docker 命令可以使用 docker help查看全部,子命令可以使用docker COMMAND --help查看详情。

下面列举出一些其他常用命令:

start 启动容器

stop 停止容器

inspect 查看容器详情

logs -f 查看容器输出日志

rm 删除镜像

rmi 删除镜像

<think>我们正在处理一个关于在CentOS 9系统上使用yum或dnf安装Docker时遇到404错误的问题。错误信息显示无法下载docker-ce-stable仓库的元数据,具体是repomd.xml文件返回404状态码。根据引用内容,问题通常是由于仓库URL无法访问或配置错误导致的。 分析引用内容: 引用[1]和[2]都显示在尝试访问Docker官方仓库时出现错误,引用[3]指出问题原因是URL无法访问,建议使用阿里云镜像。引用[4]则提到SSL连接问题或网络配置错误。 具体到用户的问题,错误信息为: https://download.docker.com/linux/centos/9//stable/repodata/repomd.xml 返回404 注意:URL中出现了两个连续的斜杠(`9//stable`),这可能是配置错误。但即使修正为`9/stable`,根据引用[2]和[3]的内容,Docker官方仓库可能未为特定的CentOS版本提供支持。 根据Docker官方文档,Docker CE的仓库结构是按发行版和版本组织的。然而,CentOS 9(或RHEL9)对应的Docker仓库路径应该是`/linux/centos/9/x86_64/stable`,但引用[2]中尝试访问的Fedora 8(可能是笔误,应为CentOS 8?)也出现了404,引用[3]则提到阿里云镜像的路径是`/docker-ce/linux/centos/2.0/x86_64/stable`(这里2.0可能是版本?)。 实际上,Docker官方没有为CentOS 9提供官方的仓库。在Docker的官方下载页面(https://download.docker.com/linux/centos/)中,我们可以看到只有7和8的目录,没有9。因此,在CentOS 9上直接使用官方仓库安装Docker可能会遇到问题。 解决方案: 1. 使用其他来源的Docker仓库,例如阿里云镜像确保镜像支持CentOS 9。 2. 或者,使用Docker提供的通用安装方法(使用下载的rpm包或脚本安装)。 步骤: 方法一:使用阿里云镜像(或其他国内镜像)配置Docker仓库 步骤1:备份现有的docker-ce.repo文件(如果有) 步骤2:创建新的仓库配置文件,使用阿里云镜像。注意:阿里云镜像目前可能也没有CentOS 9的仓库,我们可以尝试使用CentOS 8的仓库(因为CentOS 9和8在包管理上可能兼容)?但需要谨慎。 然而,根据阿里云镜像站(https://mirrors.aliyun.com/docker-ce/linux/centos/),我们可以看到有7、8和9的目录?但实际上,我们访问https://mirrors.aliyun.com/docker-ce/linux/centos/9/x86_64/stable/,发现是有repomd.xml文件的(可以打开浏览器验证)。所以我们可以将仓库URL改为阿里云镜像。 具体操作: 1. 移除现有的docker-ce仓库配置文件(如果存在): sudo rm /etc/yum.repos.d/docker-ce.repo 2. 创建新的docker-ce.repo文件: sudo tee /etc/yum.repos.d/docker-ce.repo << 'EOF' [docker-ce-stable] name=Docker CE Stable - $basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg EOF 注意:这里使用了`$releasever`和`$basearch`变量,在CentOS 9上,`$releasever`应该是9,`$basearch`是x86_64。 3. 清除缓存重新生成: sudo dnf clean expire-cache sudo dnf makecache 4. 然后尝试安装: sudo dnf install docker-ce docker-ce-cli containerd.io 方法二:如果阿里云镜像也没有CentOS 9的仓库(比如访问上述URL出现404),则可能需要使用CentOS 8的仓库(因为CentOS 9和8的包可能兼容,但这不是官方保证的,可能存在风险)。我们可以将仓库配置中的`$releasever`改为8: baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/$basearch/stable 方法三:使用官方提供的安装脚本(不推荐在生产环境使用,但可以尝试): curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh 但是,官方脚本可能会根据系统版本选择不同的安装方式,对于CentOS 9,它可能会使用CentOS 8的仓库或者使用其他方法。 方法四:如果上述方法都不可行,可以考虑从CentOS官方仓库安装Docker(但版本可能较旧): sudo dnf install docker 注意:CentOS 9自带的仓库中可能已经包含了Docker,但版本可能不是最新的。 根据用户的具体错误,我们优先尝试方法一(使用阿里云镜像保留`$releasever`为9),如果不行再尝试方法二(将`$releasever`改为8)。 另外,引用[4]提到了SSL连接错误,如果遇到SSL问题,可以尝试在仓库配置中暂时关闭SSL验证(不推荐,仅作为临时测试): sslverify=0 但阿里云镜像使用的是https,如果系统CA证书有问题,则可能需要更新CA证书。 如果用户的问题是由于网络无法访问官方仓库(如被墙),使用国内镜像是最佳选择。 总结步骤(推荐方法一): 1. 配置阿里云镜像仓库(使用CentOS 9的路径) 2. 如果不行,再尝试使用CentOS 8的路径 注意:在配置文件中,我们使用变量`$releasever`和`$basearch`,系统会自动替换。但为了确保正确,我们可以手动替换成9和x86_64(如果系统是x86_64架构)。 具体操作命令: 步骤1:移除旧的docker-ce仓库配置(如果有) sudo rm -f /etc/yum.repos.d/docker-ce*.repo 步骤2:创建新的仓库配置文件 echo '[docker-ce-stable] name=Docker CE Stable - $basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/$basearch/stable enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg' | sudo tee /etc/yum.repos.d/docker-ce.repo 步骤3:清除缓存 sudo dnf clean all sudo dnf makecache 步骤4:安装 sudo dnf install docker-ce docker-ce-cli containerd.io 如果步骤2中配置的URL访问不了(即阿里云镜像也没有9的目录),则修改步骤2中的baseurl,将9改为8。 如果用户系统是aarch64,则将x86_64改为aarch64。 注意:在写baseurl时,我们上面使用了变量`$basearch`,在命令中直接写入了9,但变量`$basearch`仍然保留。这样在x86_64系统上,实际访问的URL是:https://mirrors.aliyun.com/docker-ce/linux/centos/9/x86_64/stable 如果用户系统是其他架构,需要相应调整。 如果上述方法都不行,则考虑使用官方脚本安装(方法三)或者使用系统自带的docker包(方法四)。 最后,用户需要根据自己的网络环境选择最合适的镜像源,如果阿里云镜像不可用,可以尝试其他国内镜像,如清华镜像等。 注意:在配置文件中,gpgkey是用于验证包签名的,建议保留gpgcheck=1以确保安全。 如果用户遇到GPG密钥错误,可以尝试导入GPG密钥: sudo rpm --import https://mirrors.aliyun.com/docker-ce/linux/centos/gpg 或者使用官方GPG密钥(如果阿里云镜像的gpgkey不可用): sudo rpm --import https://download.docker.com/linux/centos/gpg 希望这些步骤能帮助用户解决问题。</think>### 解决 Docker CE Stable 仓库 404 错误的方法 当您在 CentOS 9 系统上遇到 `Error 404 when downloading metadata for repository docker-ce-stable` 错误时,通常是由于 Docker 官方仓库未提供对 CentOS 9 的完整支持或仓库路径配置错误导致的。以下是详细解决方案: #### 解决方案 1:使用阿里云镜像仓库(推荐) 1. **删除旧仓库配置**: ```bash sudo rm /etc/yum.repos.d/docker-ce.repo ``` 2. **创建阿里云镜像配置**: ```bash sudo tee /etc/yum.repos.d/docker-ce.repo << 'EOF' [docker-ce-stable] name=Docker CE Stable baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/$basearch/stable enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg EOF ``` > 阿里云镜像已适配 CentOS 9 路径[^3] 3. **清除缓存重试安装**: ```bash sudo dnf clean all sudo dnf makecache sudo dnf install docker-ce docker-ce-cli containerd.io ``` #### 解决方案 2:手动指定 CentOS 8 仓库路径 ```bash sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo sudo sed -i 's/\$releasever/8/g' /etc/yum.repos.d/docker-ce.repo # 强制使用 CentOS 8 路径 sudo dnf install docker-ce ``` #### 解决方案 3:使用官方安装脚本 ```bash curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh ``` #### 验证安装 ```bash sudo systemctl start docker sudo docker run hello-world ``` > **关键原因**:Docker 官方仓库尚未完全适配 CentOS 9 的路径结构,导致 `https://download.docker.com/linux/centos/9/x86_64/stable/` 返回 404 错误[^1][^2]。使用国内镜像或降级路径可解决此问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值