容器化运维操作(六)-Docker-compose——基本介绍 & 搭建本地mongo+mongo-express服务 & 应用-mongoose+mongodb
容器化运维操作(六)-Docker-compose——基本介绍 & 搭建本地mongo+mongo-express服务 & 应用-mongoose+mongodbDocker-compose介绍通过 Docker-Compose 用户可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如
容器化运维操作(六)-Docker-compose——基本介绍 & 搭建本地mongo+mongo-express服务 & 应用-mongoose+mongodb
Docker-compose介绍
通过 Docker-Compose 用户可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。

Compose 中有两个重要的概念:
- 服务 (service) :一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
- 项目 (project) :由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。
Docker Compose 是 Docker 的独立产品,因此需要安装 Docker 之后在单独安装 Docker Compose .
安装方法:
#下载
sudo curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#安装
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose --version
常见使用:
前面的例子,使用docker-compose改写:
version: '3'
services:
mysql:
image: mysql
container_name: test-mysql
ports:
- "8000:3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
在此文件的当前目录下,使用docker-compose up -d来执行。
生命周期管理:
创建:run/up
启动/停止/删除/重启:start/stop/rm/restart
检视/日志:logs/ps
看两个个复杂的应用:
搭建本地mongo + mongo-express服务
version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: 123456
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: 123456
给公司搭建一个git服务器吧?!
项目地址: https://github.com/sameersbn/docker-gitlab
推荐服务器配置:适用于10人的小团队~~~~
2core
2GB+2GB(swap)
文件来源——https://github.com/sameersbn/docker-gitlab/blob/master/docker-compose.yml
docker-compose.git.yml
version: '2'
services:
redis:
restart: always
image: sameersbn/redis:4.0.9-1
command:
- --loglevel warning
volumes:
- /srv/docker/gitlab/redis:/var/lib/redis:Z
postgresql:
restart: always
image: sameersbn/postgresql:10
volumes:
- /srv/docker/gitlab/postgresql:/var/lib/postgresql:Z
environment:
- DB_USER=gitlab
- DB_PASS=password
- DB_NAME=gitlabhq_production
- DB_EXTENSION=pg_trgm
gitlab:
restart: always
image: sameersbn/gitlab:11.11.0
depends_on:
- redis
- postgresql
ports:
- "10080:80"
- "10022:22"
volumes:
- /srv/docker/gitlab/gitlab:/home/git/data:Z
environment:
- DEBUG=false
- DB_ADAPTER=postgresql
- DB_HOST=postgresql
- DB_PORT=5432
- DB_USER=gitlab
- DB_PASS=password
- DB_NAME=gitlabhq_production
- REDIS_HOST=redis
- REDIS_PORT=6379
- TZ=Asia/Kolkata
- GITLAB_TIMEZONE=Kolkata
- GITLAB_HTTPS=false
- SSL_SELF_SIGNED=false
- GITLAB_HOST=localhost
- GITLAB_PORT=10080
- GITLAB_SSH_PORT=10022
- GITLAB_RELATIVE_URL_ROOT=
- GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string
- GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string
- GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string
- GITLAB_ROOT_PASSWORD=123456
- GITLAB_ROOT_EMAIL=itheima@itcast.cn
...
docker-compose在前端里面的使用:
Nodejs + mongodb + koa + vue的应用组合:
特别注意:
视频中,我们使用vue是在局部安装的,所以使用npx命令在进行创建。
vue官网推荐大家进行全局安装:
npm i -g @vue/cli
# 然后使用
vue create myproject
docker-compose.yml
mongoosejs英文网——https://mongoosejs.com/
mongoosejs中文网——http://www.mongoosejs.net/
mongodb官网——https://www.mongodb.com/
version: '3'
services:
web:
image: web:1.0
ports:
- "8080:80"
server:
image: server:1.0
ports:
- "3000:3000"
depends_on:
- mongodb
links:
- mongodb:db
mongodb:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: 123456
depends_on 决定了容器加载的先后顺序,这里mongdb、web先加载,mongdb创建完成之后,再来创建server。
更多推荐


所有评论(0)