[Docker] - 如何发现和运行自己需要的Image(镜像)

本文介绍了如何访问Docker Hub,通过搜索关键词找到并下载whalesay镜像,接着详细展示了如何运行该镜像,以及查看本地Container中的Image。Docker Hub汇聚了个人和组织分享的Image,包括官方版本。

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

全世界的人都可以创建和分享自己的Docker Image,你可以用浏览器访问Docker Hub网站,来搜索发现那些对自己有用的Image,下载并运行他们。

1. 访问Docker Hub,并搜索Image


右上角有一个Search输入框,输入关键词就可以搜索。

Docker Hub所包含的Image包括,个人发布的私人版本和由一些组织发布的官方正式版本。一些组织,RedHat, IBM, Google等等,都会在Docker Hub上分享Image。

下面以whalesay image作为一个例子演示如何搜索,下载,运行一个Image。

2. 搜索whalesay

在输入框中输入whalesay,开始收索,会搜索到很多,其中有一个是官方的,docker/whalesay。




点击docker/whalesay进入,里面是介绍说明,详细的告诉你这是个什么样的程序,通过什么命令来下载运行。



3. 运行whalesay

参照上面的说明我首先打开Docker Quick Start Terminal,在里面运行上面说明中的命令。

$ docker run docker/whalesay cowsay boo






























如果你的container中没有,会先去Docker repository去下载,然后再运行。


4. 查看本地Container中的Image

通过命令来查看本地Container中都有那些Image。

$ docker images


<think>我们有一个用户问题:“如何用docker-compose运行本地构建的Docker镜像配置示例”根据引用内容,我们可以总结出以下几点:1.在docker-compose.yml中,我们可以通过指定构建上下文(build)来构建镜像运行,但用户希望运行的是已经构建好的本地镜像。2.要运行本地镜像,在docker-compose.yml中应该使用`image`指令来指定镜像名称(可以是本地已有的镜像名称)。3.如果本地镜像不存在,docker-compose会尝试从仓库拉取,但如果是本地构建的,那么镜像已经在本地,所以直接使用即可。配置示例:假设我们有一个本地构建的镜像,名为`my-custom-image:latest`。创建一个docker-compose.yml文件,内容如下:```version:'3'services:my-service:image:my-custom-image:latest#直接使用本地镜像的名称标签ports:-"8080:8080"#如果需要端口映射#其他配置(如环境变量、卷挂载等)根据需求添加```然后运行:```docker-composeup-d```注意:如果之前使用`build`指令构建过,并且现在想直接使用已经构建好的镜像(而不重新构建),那么只需将`build`部分替换为`image`即可。另外,引用[5]提到,如果需要重新构建镜像运行,可以使用`docker-composeup--build-d`。但是用户现在不需要构建,只需要运行本地已有的镜像。所以,关键点就是在docker-compose.yml中使用`image`指定本地镜像的名称。如果用户同时想要在docker-compose.yml中保留构建的能力,也可以同时指定`build``image`,这样当使用`docker-composeup--build`时会重新构建并打上指定的标签,然后运行。但是如果没有`--build`参数,且镜像已存在,则直接运行。同时指定`build``image`的示例:```version:'3'services:my-service:build:./dir#构建上下文目录image:my-custom-image:latest#构建后的镜像名称ports:-"8080:8080"```这样,如果本地没有`my-custom-image:latest`,使用`docker-composeup`会先构建(即使没有--build),如果已经存在则直接运行。如果使用`docker-composeup--build`则强制重新构建。但是用户的问题是“运行本地构建的镜像”,所以最简单的就是只指定`image`。根据引用[3],我们还可以指定容器名称等。生成相关问题:1.如何在不重新构建的情况下运行docker-compose服务?2.如何在docker-compose中同时指定构建镜像名称?3.如何查看docker-compose运行的容器?4.如何停止删除由docker-compose启动的服务?5.docker-compose如何管理多个服务之间的依赖?注意:用户的问题中引用了多个参考文献,我们在回答中可以适当引用。</think>### 如何用 Docker Compose 运行本地构建的 Docker 镜像 要使用 Docker Compose 运行本地构建的镜像,关键是在 `docker-compose.yml` 文件中直接引用镜像名称(而非构建路径),并确保该镜像已存在于本地镜像库中。以下是详细配置示例步骤: #### 配置示例(docker-compose.yml) ```yaml version: '3.8' services: my-app: # 服务名称 image: my-custom-image:latest # ⭐ 直接指定本地镜像名称标签 container_name: my-app-container # 自定义容器名(可选) ports: - "8080:8080" # 端口映射 volumes: - ./data:/app/data # 挂载数据卷 environment: - ENV_VAR=value # 环境变量 ``` #### 操作步骤 1. **构建本地镜像**(确保镜像存在于本地): ```bash docker build -t my-custom-image:latest . ``` 2. **验证镜像存在**: ```bash docker images | grep my-custom-image ``` 3. **启动服务**: ```bash docker compose up -d # 自动使用本地镜像 ``` 4. **查看运行状态**: ```bash docker compose ps # 输出示例: # Name Command State Ports # ----------------------------------------------------------- # my-app-container /bin/sh -c ... Up 0.0.0.0:8080->8080/tcp ``` #### 关键说明 1. **`image` 指令** 直接使用镜像名称(如 `my-custom-image:latest`)而非 `build` 路径,Compose 会优先从本地镜像库加载[^3][^5]。 2. **避免冲突** - 若同时存在 `build` `image` 指令,Compose 会重建镜像并覆盖本地镜像 -运行本地镜像时需**删除 `build` 指令**[^2][^5] 3. **自定义容器名** `container_name` 可指定容器名称(如 `my-app-container`),但需注意: - 指定后无法通过 `scale` 扩展副本(容器名必须唯一)[^3] - 未指定时自动生成格式:`项目名_服务名_序号` #### 常见问题解决 - **镜像不存在错误**:确认镜像标签拼写正确,且已通过 `docker build` 或 `docker pull` 存入本地库。 - **端口冲突**:修改 `ports` 映射(如 `"9090:8080"`)。 - **立即重建并运行**:若需重新构建镜像,使用: ```bash docker compose up --build -d # 强制重建镜像后启动[^5] ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值