首页 > 其他分享 >mac docker compose简单使用说明

mac docker compose简单使用说明

时间:2023-05-23 18:07:54浏览次数:47  
标签:容器 Compose mac compose tier docker networks


1 docker compose简介

Compose是 Docker 的服务编排工具,主要用来构建基于Docker的复杂应用Compose 通过一个配置文件来管理多个 -Docker 容器,非常适合组合使用多个容器进行开发的场景。
docker-compose 是编排容器的。例如,你有一个 php 镜像,一个 mysql 镜像,一个 nginx 镜像。
如果没有 docker-compose ,那么每次启动的时候,你需要敲各个容器的启动参数,环境变量,容器命名,指 定不同容器的链接参数等等一系列的操作,相当繁琐。
而用了 docker-composer 之后,你就可以把这些命令一次性写在 docker-composer.yml 文件中,以后每次启动这一整个环境(含3个容器)的时候,你只要敲一个 docker-composer up命令就ok了。
dockerfile 的作用是从无到有的构建镜像。它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。 Dockerfile -为 docker build 命令准备的,用于建立一个独立的 image ,在 docker-compose 里也可以用来实时 build

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

如果你还不了解 YML 文件配置,可以先阅读 YAML 入门教程

Compose 使用的三个步骤:

  • 使用 Dockerfile 定义应用程序的环境。
  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  • 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

2 mac安装docker compose

Docker for Mac 和 Docker Toolbox 已经包含了 Compose 了, 所以 Mac 用户不用单独安装Compose了。

mac安装docker学习链接

docker compose使用教程

3 docker-compose配置内容详解

docker compose配置配置内容详解

Docker-Compose标准模板文件应该包含version、services、networks 三大部分,最关键的是services和networks两个部分。

详细使用介绍2

如所示为一个典型docker-compose示例

version: '2'
services:
  web:
    image: dockercloud/hello-world
    ports:
      - 8080
    networks:
      - front-tier
      - back-tier
 
  redis:
    image: redis
    links:
      - web
    networks:
      - back-tier
 
  lb:
    image: dockercloud/haproxy
    ports:
      - 80:80
    links:
      - web
    networks:
      - front-tier
      - back-tier
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock 
 
networks:
  front-tier:
    driver: bridge
  back-tier:
driver: bridge

4 docker-compose常用命令

常用命令参考链接

docker-compose常用命令2

#### 开始构建 -d打印详细信息
docker-compose up
#### 查看状态
docker-compose ps
# 亦或者
docker ps
#### 停止服务
ocker-compose stop
# 亦或者
docker-compose dwon
#### 重启服务
docker-compose restart

5 异常说明

关于docker-compose.yaml异常-service ‘volumes’ must be a mapping not an array

通常异常都是由于编写的docker-compose文件没有符合相关要求,这里需要参考第三小节的内容,严查清楚yaml的层级关系和语法是否正常。

docker-compose - service 'volumes' must be a mapping not an array

bash进入异常starting container process caused “exec: “bash”: executable file not found in $PATH”: unknown

(⎈ |context-cluster1-read:business)☁  01-learning-for-mybatis [master] ⚡  docker exec -it c92ad832cc2d bash
OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown

这通常是容器镜像不支持bash shell或者环境变量没有bash,可以换成sh如下所示

docker exec -it c92ad832cc2d sh


标签:容器,Compose,mac,compose,tier,docker,networks
From: https://blog.51cto.com/u_13674158/6333858

相关文章

  • mac的截图及sips使用心得
    1-mac推荐截图工具从ubuntu切换到Mac,最放不下手的其实是一个叫flameshot的截图工具,确实是ubuntu系统的神器,但是渐渐熟悉mac后发现mac才是各种大杀器的集合地,今天想谈到的就是截图工具,初接触mac的时候,几乎接触了mac大多数别人推荐的截图工具,如下所示:系统截图工具;微信截图工具;浏览器......
  • docker学习笔记:harbor私有仓库的搭建以及简单应用
    harbor私有仓库简介Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的DockerRegistry管理项目,它包括权限管理(RBAC)、LDAP、日志审......
  • docker学习笔记:Prometheus+cAdvisor搭建容器监控
    Prometheus+cAdvisor容器监控简介Prometheus官网Prometheus-Monitoringsystem&timeseriesdatabaseCNCF云原生基金会的第二个项目cAdvisorcAdvisor(ContainerAdvisor)是Google开源的一个容器监控工具,可用于对容器资源的使用情况和性能进行监控。它以守护进程方式......
  • 找不到想要用的Mac软件,就来macw
    对于Mac新手,尤其是刚刚从Windows转到MacOSX的用户来说,最大的痛苦莫过于找不到想要用的软件了。Mac下载macw为用户提供最新最全的Mac常用软件、Mac装机必备软件,并且持续不断更新,为Mac用户提拱更好、更专业的服务平台。macw软件下载站:https://www.macw.com/?id=ODA2NCZfJjI3LjE......
  • 使用n对Mac上的Node版本进行管理及升降
    n如果在我的电脑上已经安装了nodejs,但是觉得这个版本不好用,或者是不兼容公司的项目,那么可以使用n进行node的版本管理。n相对于nvm来说,安装起来还是非常方便的。安装1.首先确定nodejs版本,确定已安装nodejsnode-v2.清除nodejs的缓存sudonpmcacheclean-f3.使用npm全......
  • docker 安装 nginx
    从https://blog.csdn.net/u010148813/article/details/126172372摘要的内容1.下载镜像dockerpullnginx:1.22.02.创建挂载目录mkdir/root/apply/docker/apply/nginx3.从容器中复制要挂载的文件dockerrun--namenginx1.22-p10080:80-dnginx:1.22.0dockercpngi......
  • 【macOS】brew update报错:fatal: unable to access xxx & LibreSSL SSL_connect 解决
    ✨报错提示fatal:unabletoaccess'https://mirrors.ustc.edu.cn/homebrew-cask.git/':LibreSSLSSL_connect:SSL_ERROR_SYSCALLinconnectiontomirrors.ustc.edu.cn:443fatal:unabletoaccess'https://mirrors.ustc.edu.cn/brew.git/':LibreSSL......
  • macOS下由yarn与npm差异引发的Electron镜像地址读取问题
    记录macOS下由yarn与npm差异引发的Electron镜像地址读取问题写在前面:该问题仅仅出现在Linux和macOS上,Windows上不存在该问题!初始背景最近笔者重新拾起了Electron,把最新版Electron的官方文档阅读了一遍。众所周知,Electron作为依赖在安装的时候,其二进制文件下载在国内一直以来都......
  • 动力节点Docker深入浅出(一)Docker概述
    分享一下最近正在b站上看动力节点的docker课程,整理了相关学习笔记,会按照学习进度慢慢更新的,加油本套课程适合零基础、技术提升乃至所有编程语言开发者;课程对应包含含基础篇、提升篇与高级篇,共计十二大章节。本课程主要学习知识点:“7个深度/3个全面”;针对Docker的知识体系,无......
  • https部署与docker下nginx的转发+文件获取
    进入nginx容器查看是否有etc/nginx/cert目录将https的域名证书放到cert目录下配置80和443server{#listen80;#侦听80端口listen80;#侦听443端口,用于SSLserver_name127.zyfdtsite.com;client_max_body_size1024m;#charsetkoi8-r;#acc......