一篇文章docker-compose安装使用全解

news/2024/6/3 19:24:46 标签: docker, 容器, 运维

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 关于docker compose
  • docker compose安装
  • docker-compose YMAL
    • 常用配置项
    • 综合配置示例
  • docker compose常用命令
    • 启动服务
    • 关闭服务
    • 列出容器
    • 查看日志
    • 重启日志
    • 构建镜像
  • 总结


docker_compose_8">关于docker compose

Docker Compose是一个用于定义和运行多个Docker容器的工具,他是一款强大的容器编排工具,能够简化容器化应用程序的部署和管理,提高开发效率和部署速度,其功能与特点如下:
在这里插入图片描述

  • 容器编排:Docker Compose可以实现容器编排,即在一个项目(如Web应用)中同时运行多个容器,并将它们组合起来以形成服务集群。

  • 灵活性:Docker Compose可以灵活地定义多个容器之间的关系,包括网络、数据卷等,并支持在不同的环境中进行部署,例如开发、测试和生产环境。

  • Yaml格式:Docker Compose使用Yaml格式来定义容器、服务、网络和存储等信息,易于理解和管理。

  • 可扩展性:Docker Compose可以快速扩展、添加和删除容器,使得它非常适合于部署和管理大规模的容器化应用程序。

  • Docker Engine集成:Docker ComposeDocker Engine紧密集成,在Docker官方文档中有详细的介绍,同时也支持第三方插件和工具。

docker_compose_22">docker compose安装

dockercompose_23">Linux安装docker-compose

  1. 下载与安装
    在终端中输入以下命令,下载最新版本的 docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. 赋予执行权限:
sudo chmod +x /usr/local/bin/docker-compose
  1. 检查是否安装成功
docker-compose --version

显示版本信息表示安装成功。

dockercompose_41">Windows安装docker-compose

  1. 下载最新版本的 docker-compose
https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Windows-x86_64.exe
  1. 把下载的文件重命名为 docker-compose.exe,并将其移到在环境变量 PATH 中的一个目录下,如 C:\Windows\System32\。

  2. 打开命令提示符或 PowerShell 并输入以下命令,检查是否安装成功:

docker-compose --version

显示版本信息表示安装成功。

dockercompose_YMAL_58">docker-compose YMAL

docker compose的使用依赖于docker-compose.ymal文件,改文件放置于我们项目文件的根目录下面,用于编排该项目容器的一下名称,挂载,网络等docker环境信息。下面介绍一下常用的配置:

常用配置项

  • version:指定Compose文件格式的版本号,当前最新版本为3。

  • services:定义应用程序中的各个服务,每个服务都有一个独立的Docker容器

  • image:指定要使用的Docker镜像。

  • ports:将容器端口映射到主机端口,格式为"HOST:CONTAINER"。

  • volumes:将主机上的目录或文件夹挂载到容器中,格式为"HOST:CONTAINER"。

  • networks:定义应用程序中的网络,在同一个网络中的服务可以相互通信。

  • environment:设置环境变量,格式为"KEY=VALUE"。

综合配置示例

version:'3'
services:
  web:
    image: nginx:latest
    container_name: nginx
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./html:/usr/share/nginx/html
      - ./logs:/var/log/nginx
    environment: - NGINX_HOST=localhost - NGINX_PORT=80
    networks: - webnet
  db: 
    image: mysql 
    volumes: - ./db:/var/lib/mysql 
    networks: - dbnet 
    environment: - MYSQL_ROOT_PASSWORD=password 
    networks: - webnet

上面定义了两个服务,一个是Web服务,使用Nginx镜像,将主机的80端口映射到容器的80端口,并将主机上的web目录挂载到容器/usr/share/nginx/html目录中。
在这里插入图片描述

另一个是数据库服务,使用MySQL镜像,将主机上的db目录挂载到容器/var/lib/mysql目录中。两个服务分别在不同的网络中运行。同时,为Web服务指定了两个环境变量:NGINX_HOST和NGINX_PORT。

docker_compose_107">docker compose常用命令

Docker Compose是用于定义和运行多容器Docker应用程序的工具。以下是常用的一些命令:

启动服务

docker-compose up:启动compose配置中定义的服务容器

举例说明:假设在docker-compose.yml文件中定义了一个web服务,可以使用以下命令启动:

$ docker-compose up -d web

关闭服务

docker-compose down:停止并删除compose配置中定义的所有服务容器

举例说明:使用以下命令停止并删除所有服务容器

$ docker-compose down

列出容器

docker-compose ps:列出当前compose配置的所有服务容器

举例说明:使用以下命令列出当前配置的所有服务容器

$ docker-compose ps

查看日志

docker-compose logs:输出指定服务容器的日志信息。

举例说明:使用以下命令输出web服务容器的日志信息:

$ docker-compose logs web

重启日志

docker-compose restart:重启指定的服务容器

举例说明:使用以下命令重启web服务容器

$ docker-compose restart web

构建镜像

docker-compose build:构建指定服务容器的镜像。

举例说明:使用以下命令构建web服务容器的镜像:

$ docker-compose build web

总结

以上就是今天要讲的内容,一篇文章docker-compose安装使用全解,感谢大家支持。喜欢记得三联哟。


http://www.niftyadmin.cn/n/442669.html

相关文章

Python数据分析02:科学计算库Numpy

文章目录 零、学习目标一、认识NumPy数组对象二、创建NumPy数组(一)采用array()函数创建数组(二)采用zeros()和ones()函数创建数组(三)采用empty()函数创建数组(四)采用arange()函数创建数组(五)注意事项三、ndarray对象的数据类型(一)查看数据类型1、查看数据类型…

wxWidget 界面布局参数

具体地 wxglade 参数:Position :当前控件在Sizer中所处的位置,数字越小越靠前。 proportion :这个属性现在在wxWidget中叫做,负责控制当前控件在当前Sizer中所占用的空间大小:如果取值为0时,当前控件多大&#xff0…

腾讯太狠:40亿QQ号, 给你1G内存,怎么去重?

说在前面 在40岁老架构师 尼恩的读者社区(50)中,最近有小伙伴拿到了一线互联网企业如腾讯、美团、阿里、拼多多、极兔、有赞、希音的面试资格,遇到一几个很重要的面试题: 40亿Q号如何设计算法去重,相同的Q号码仅保留一个&#x…

Vue练手项目之仿京东到家主页

目录 概述1.效果展示2.使用原始HtmlCSS实现3.使用Vue.js进行组件化3.1 Header部分组件实现3.1.1图标的展示3.1.2 定义Vue调试的名称3.1.3 使用scoped隔离组件间的css影响 3.2 附近店铺部分实现3.3 底部导航栏组件的实现3.4 将组件组成一个整体页面 4.代码地址 概述 本人是一个…

1.3 springboot项目中,数据层HikariCP与MyBatis整合

步骤1&#xff1a;在顶级父工程中pom引入mysql和mybatis依赖 <!-- mysql驱动 --> <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.41</version> </dependency> <…

Question1:harbor登录成功,推送镜像失败

denied: requested access to the resource is denied 解决方案 查看用户的权限 Harbor 用户角色权限速查 系统级角色&#xff1a; Harbor 系统管理员&#xff1a;“Harbor 系统管理员”拥有最多的权限。除了上述权限外&#xff0c;“Harbor 系统管理员”还可以列出所有项目、…

[CSS] CSS 实现小球环绕效果

效果演示 视频未审核通过, 后面在上传 代码 CSS .container {width: 10rem;height: 10rem;}.planet {width: 5rem;height: 5rem;border: 2px solid rgb(65, 127, 235);border-radius: 50%;position: absolute;left: -0.1rem;top: -0.3rem;}.ball {width: 0.5rem;height: 0.…

Android Radio实战——常见问题总结(附)

本篇文章主要分析总结开发中遇到的常见问题,会不定期更新添加内容。 1、找不到Radio服务 问题背景 项目代码从 Android 9.0 迁移到 Android 11 上。车机上电后出现如下错误: android.os.ServiceManager$ServiceNotFoundException: No service published for: broadcastrad…