本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

Ruby Docker镜像是由Docker官方维护的标准化容器镜像,基于Debian或Alpine等基础系统构建,集成了Ruby编程语言运行环境及相关工具链。该镜像旨在为Ruby应用开发、测试和部署提供一致、隔离的运行环境,支持多种Ruby版本和架构,适用于从简单脚本到复杂Web应用(如Ruby on Rails)的容器化需求。
ruby:<version>:基于Debian Bullseye,包含完整系统依赖,适合生产环境。ruby:<version>-slim:基于Debian Bullseye Slim,精简系统组件,减少镜像体积(比完整版小约40%)。ruby:<version>-alpine:基于Alpine Linux,极致精简(体积通常<100MB),适合资源受限场景,但需注意musl libc与glibc的兼容性差异。ruby:<version>-bullseye/-bookworm:指定Debian具体发行版,确保依赖稳定性。gem包管理器及bundler依赖管理工具。gem install直接安装RubyGems,bundle install解析Gemfile依赖。-slim或-alpine变体)。通过Docker Hub拉取镜像,格式为:
docker pull ruby:<tag>
标签(tag)说明:
标签格式为<ruby-version>-<variant>,例如:
3.3:Ruby 3.3,基于Debian Bullseye完整版。3.2-slim:Ruby 3.2,基于Debian Slim。3.1-alpine3.19:Ruby 3.1,基于Alpine 3.19。3.3.0-bullseye:Ruby 3.3.0,指定Debian Bullseye发行版。完整标签列表可参考Docker Hub Ruby镜像页。
启动Ruby交互式解释器(irb):
docker run -it --rm ruby:3.3 irb
-it:交互式终端。--rm:退出后自动删除容器。执行当前目录下的script.rb:
# 假设本地存在 script.rb(如:puts "Hello, Docker!") docker run --rm -v "$PWD":/app -w /app ruby:3.3 ruby script.rb
-v "$PWD":/app:将当前目录挂载到容器内/app目录。-w /app:设置工作目录为/app。在Rails应用根目录创建Dockerfile:
# 基于slim变体减少体积 FROM ruby:3.3-slim # 安装系统依赖(Rails需Node.js、Yarn等) RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ nodejs \ yarn \ && rm -rf /var/lib/apt/lists/* # 设置工作目录 WORKDIR /app # 复制Gemfile及依赖锁文件,优先安装gem依赖(利用Docker层缓存) COPY Gemfile Gemfile.lock ./ RUN bundle install --jobs 4 --retry 3 # 复制应用代码 COPY . . # 预编译资产(如CSS/JS) RUN bundle exec rails assets:precompile # 暴露Rails默认端口 EXPOSE 3000 # 启动命令 CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"]
# 构建镜像 docker build -t my-rails-app . # 运行容器(映射3000端口) docker run -p 3000:3000 my-rails-app
适用于开发环境(含数据库联动),创建docker-compose.yml:
version: '3.8' services: rails-app: build: . ports: - "3000:3000" volumes: - .:/app:cached # 本地代码挂载(实时同步修改) - gem_cache:/usr/local/bundle # 缓存gem依赖(加速重建) environment: - RAILS_ENV=development - DATABASE_URL=postgres://postgres:postgres@db:5432/myapp_development depends_on: - db db: image: postgres:15-alpine volumes: - postgres_data:/var/lib/postgresql/data environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres - POSTGRES_DB=myapp_development volumes: gem_cache: # 持久化gem缓存 postgres_data: # 持久化数据库数据
启动服务:
docker-compose up --build
| 变量名 | 说明 | 默认值 |
|---|---|---|
BUNDLE_PATH | bundle install的依赖安装路径 | /usr/local/bundle |
BUNDLE_BIN | bundle binstubs生成路径 | $BUNDLE_PATH/bin |
RAILS_ENV | Rails环境(开发/测试/生产) | development(开发环境) |
RACK_ENV | Rack应用环境(如Sinatra) | development |
GEM_HOME | RubyGems安装路径 | 同BUNDLE_PATH |
标签通常由<ruby-version>-<variant>-<distro-version>组成,例如:
3.3.0:Ruby 3.3.0,基于Debian Bullseye完整版。3.2-slim:Ruby 3.2.x最新补丁版,基于Debian Bullseye Slim。3.1.4-alpine3.19:Ruby 3.1.4,基于Alpine 3.19。nokogiri旧版本)可能需要额外配置(如安装musl-dev、gcc)。3.3.0-slim而非3.3),避免自动更新导致兼容性问题。--rm参数,配合日志收集工具(如ELK)保留容器日志。Gemfile和Gemfile.lock,利用Docker层缓存减少重复安装依赖耗时。--user指定非root用户运行容器,降低权限风险(需在Dockerfile中创建用户)。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429