docker-compose安装和简单使用

发布于:2024-09-18 ⋅ 阅读:(154) ⋅ 点赞:(0)

本文介绍docker-compose的安装和使用

新版docker已经默认安装了docker-compose
可以使用docker-compose -v 查看docker-compose版本
如果没有的话可以使用以下命令直接安装

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose

接下来就可以愉快的使用docker-compose了✌️

以下是一下docker-compose.yaml文件供参考(分别是memos(在线备忘录)和nextcloud(可以当一个nas服务使用)和nextcloud所依赖的数据库存储服务)一个简单的使用,本yaml指定了version、听说目前新版可以不用指定version,并且可以直接使用docker执行docker-compose.yaml文件,具体本人还没有使用过。

docker-compose up -d  ##就能直接启动容器了

之后就可以使用宿主机Ip加所映射的端口就可以访问所运行的服务了
例:127.0.0.1:5230就可以访问memos服务

version: '3'  # 使用 Docker Compose 文件版本 3

volumes:
  nextcloud:  # Nextcloud 数据存储卷
  db:         # 数据库数据存储卷

services:
  memos:
    image: neosmemo/memos:stable # 拉取的景像
    container_name: memos 
    restart: always #容器启动方式 
    ports: 
      - 5230:5230  # 端口映射 将容器内端口映射到宿主机上
    volumes: 
      - /Volumes/catoData/memos:/var/opt/memos # 将容器内文件挂载到宿主机上
  db:
    image: mysql:8.0  # 使用 mysql 8.0 镜像
    restart: always  # 总是重新启动容器
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW  # 设置数据库命令和配置 
    volumes:
      - /Volumes/catoData/db:/var/lib/mysql   # 将数据库数据存储到卷中
    environment: # 环境变量
      - MYSQL_ROOT_PASSWORD=***    # 设置 MySQL root 用户密码(为空)
      - MYSQL_PASSWORD=***         # 设置 Nextcloud 数据库用户密码(为空)
      - MYSQL_DATABASE=nextcloud  # 设置 Nextcloud 数据库名
      - MYSQL_USER=nextcloud    # 设置 Nextcloud 数据库用户名

  app:
    image: nextcloud  # 使用 Nextcloud 镜像
    container_name: nextcloud
    restart: always  # 总是重新启动容器
    ports:
      - 8080:80    # 映射容器端口 80 到主机端口 8080
    links:
      - db         # 与 db 服务建立链接
    volumes:
      - /Volumes/catoData/data:/var/www/html
      - /Volumes/catoData/allData:/var/myData   # 将 Nextcloud 数据存储到卷中
    environment:
      - MYSQL_PASSWORD=***           # 设置 Nextcloud 数据库用户密码(为空)
      - MYSQL_DATABASE=nextcloud  # 设置 Nextcloud 数据库名
      - MYSQL_USER=nextcloud      # 设置 Nextcloud 数据库用户名
      - MYSQL_HOST=db             # 指定数据库服务的主机名为 db