Docker学习路线9:运行容器

要启动一个新的容器,我们使用 docker run 命令,后跟镜像名称。基本语法如下:

docker run [选项] 镜像 [COMMAND] [ARG...]


例如,要运行官方的 Nginx 镜像,我们可以使用:

docker run -d -p 8080:80 nginx


这会启动一个新的容器,并将主机的端口 8080 映射到容器的端口 80。

列出容器

要列出所有正在运行的容器,请使用 docker ps 命令。要查看所有容器(包括已停止的容器),请使用 -a 标志:

docker container ls -a


访问容器

要访问正在运行的容器的 shell,请使用 docker exec 命令:

docker exec -it CONTAINER_ID bash


CONTAINER_ID 替换为所需容器的 ID 或名称。您可以在 docker ps 的输出中找到它。

停止容器

要停止运行中的容器,请使用 docker stop 命令,后跟容器 ID 或名称:

docker container stop CONTAINER_ID


删除容器

停止容器后,我们可以使用 docker rm 命令,后跟容器 ID 或名称,将其删除:

docker container rm CONTAINER_ID


要在退出时自动删除容器,请在运行容器时添加 --rm 标志:

docker run --rm IMAGE


Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它允许您使用一个简单的名为 docker-compose.yml 的 YAML 文件创建、管理和运行应用程序。此文件描述了你的应用程序的服务、网络和卷,只需使用一个命令就可以轻松运行和管理你的容器。

使用 Docker Compose 的一些好处包括:

  • 简化容器管理: Docker Compose 允许您在一个地方定义和配置所有服务、网络和卷,使其易于管理和维护。
  • 可重复构建: 共享你的 docker-compose.yml 文件,以确保他人运行相同的环境和服务。
  • 版本支持: Docker Compose 文件可以进行版本控制,以便更容易地与不同版本的 Docker Compose 工具进行兼容。

创建 Docker Compose 文件:

要创建一个 docker-compose.yml 文件,首先指定您想要使用的 Docker Compose 版本,然后是您想要定义的服务。下面是一个基本的 docker-compose.yml 文件示例:

version: "3.9"services:  web:    image: nginx:latest    ports:      - "80:80"  db:    image: mysql:latest    environment:      MYSQL_ROOT_PASSWORD: mysecretpassword


在这个示例中,我们指定了两个服务:一个运行最新版本 nginx 镜像的 Web 服务器(web),以及运行 MySQL 的数据库服务器(db)。Web 服务器将其端口 80 暴露给主机,而数据库服务器则设置了根密码的环境变量。

运行 Docker Compose:

要运行你的 Docker Compose 应用程序,只需导航到包含你的 docker-compose.yml 文件的目录,并运行以下命令:

docker-compose up


Docker Compose 将读取文件并按指定的顺序启动定义的服务。

其他有用的命令:

  • docker-compose down:停止并删除在 docker-compose.yml 文件中定义的所有正在运行的容器、网络和卷。
  • docker-compose ps:列出在 docker-compose.yml 文件中定义的所有容器的状态。
  • docker-compose logs:显示在 docker-compose.yml 文件中定义的所有容器的日志。
  • docker-compose build:构建在 docker-compose.yml 文件中定义的所有镜像。

这是一个关于 Docker Compose 的简要介绍!了解更多信息,请查看官方的 Docker Compose 文档

运行时配置选项

运行时配置选项允许你在运行 Docker 容器时自定义容器的行为和资源。这些选项对于管理容器的资源、安全性和网络非常有帮助。以下是一些常用的运行时配置选项的简要概述:

资源管理

  • CPU: 你可以使用 cpus 和 cpu-shares 选项来限制容器的 CPU 使用率。cpus 选项限制容器可以使用的 CPU 核心数量,而 cpu-shares 选项为容器分配相对的 CPU 时间份额。docker run --cpus=2 --cpu-shares=512 your-image
  • 内存: 你可以使用 memory 和 memory-reservation 选项来限制和预留容器的内存。这可以帮助防止容器占用过多的系统资源。docker run --memory=1G --memory-reservation=500M your-image

安全性

  • 用户: 默认情况下,容器作为 root 用户运行。为了增加安全性,你可以使用 user 选项将容器作为其他用户或 UID 运行。docker run --user 1000 your-image
  • 只读根文件系统: 为了防止容器对文件系统进行不必要的更改,你可以使用 read-only 选项将根文件系统挂载为只读。docker run --read-only your-image

网络

  • 发布端口: 你可以使用 publish(或 p)选项将容器的端口发布到主机系统上。这允许外部系统访问容器化的服务。docker run -p 80:80 your-image
  • 主机名和 DNS: 你可以使用 hostname 和 dns 选项来自定义容器的主机名和 DNS 设置。docker run --hostname=my-container --dns=8.8.8.8 your-image

包括这些运行时配置选项将允许你有效地管理容器的资源、安全性和网络需求。有关可用运行时配置选项的完整列表,请参阅 Docker 的官方文档

#docker##开发##运维##后端##面试#
全部评论

相关推荐

06-17 12:05
已编辑
南昌大学 Java
没想到我也能一周速通字节,javaer简历boss上被字节的测开捞了,项目是点评和rpc,之前0实习。简单说下时间线和面试内容吧,三面都是温柔的小姐姐,面试体验很好。总结来说基本没有问常规八股,都是围绕项目细节展开的场景问题,开放性问题,然后带一点八股。⌚️投递时间:5.28👋一面:6.9 40min1.自我介绍2.项目拷打(超卖问题怎么解决的,由此展开聊了很久,各种细节拷打)3.算法题:将长度为n的数组分成m个和相等的子数组,求m的最大值,非hot100原题,leetcode698有道类似的,只给了10分钟,时间有点短没完全写出来,本来感觉都凉了但还是放过我了,感恩。4.高考成绩如何实现排...
一笑而过2222:一、抖音App长期无响应原因分析 1. 客户端问题:App版本过旧存在兼容性缺陷或代码逻辑错误;本地缓存、用户数据损坏影响加载;手机系统版本低、硬件性能不足导致不兼容。 2. 网络问题:网络信号差、无网络或DNS解析失败;代理设置错误、企业网络拦截抖音域名。 3. 服务端问题:启动依赖的API响应慢、服务端故障;CDN静态资源下载超时。 4. 第三方依赖问题:广告、推送等SDK初始化异常;系统服务未启用或关键权限缺失。 5. 其他原因:系统时间错误、后台应用抢占资源;用户频繁点击启动图标引发冲突。 二、电商平台兑奖系统测试用例 1. 功能测试:验证正常兑换、积分不足、限量商品重复兑换、库存实时更新及兑换记录查询功能。 2. 兼容性测试:在不同操作系统、浏览器环境下,确保功能正常和UI适配。 3. 性能与安全测试:模拟高并发检验系统稳定性;测试接口防刷机制;防御SQL注入攻击。 4. 异常场景测试:覆盖断网、服务端数据回滚、奖品过期等异常情况处理。 5. 用户体验测试:评估兑换流程是否简洁,错误提示是否明确,页面加载速度是否达标。 三、扩展建议 使用Firebase Crashlytics等工具上报启动日志排查抖音无响应问题;针对兑奖系统进行压测,重点监控TPS、错误率及响应时间 。
点赞 评论 收藏
分享
05-09 14:45
门头沟学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-12 18:53
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务