docker-compose使用与常用服务配置
目录
安装docker-compose
官方安装文档:docker-compose install
配置文件编辑与示例
进入目录并编辑配置文件:
1 2
| cd /home/ vi docker-compose.yml
|
示例配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| version: '1' services: mysql1: image: mysql environment: - MYSQL_ROOT_PASSWORD=123456 ports: - 28002:3306 mysql2: image: mysql environment: - MYSQL_ROOT_PASSWORD=123456 ports: - 28003:3306
|
常用命令
1 2 3 4 5 6
| docker-compose up -d docker-compose start docker-compose stop docker-compose restart docker-compose rm docker logs -f <服务名>
|
服务部署示例
部署doclever
1 2 3 4
| cd /home/ mkdir doclever cd doclever vi docker-compose.yml
|
配置文件示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| version: "2" services: DOClever: image: lw96/doclever restart: always container_name: "DOClever" ports: - 10000:10000 volumes: - /srv/doclever/file:/root/DOClever/data/file - /srv/doclever/img:/root/DOClever/data/img - /srv/doclever/tmp:/root/DOClever/data/tmp environment: - DB_HOST=mongodb://mongo:27017/DOClever - PORT=10000 links: - mongo:mongo
mongo: image: mongo:latest restart: always container_name: "mongodb" volumes: - /srv/doclever/db:/data/db
|
常用操作:
1 2 3
| docker-compose up -d chmod +x /usr/local/bin/docker-compose docker ps | grep doclever
|
防火墙端口开放示例:
1 2
| firewall-cmd --add-port=10000/tcp --zone=public --permanent firewall-cmd --reload
|
访问 http://<服务器IP>:10000
,登录后台修改密码。
部署gitlab
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| version: '2.3' services: redis: restart: always image: redis:5.0.9 command: - --loglevel warning volumes: - redis-data:/var/lib/redis:Z
postgresql: restart: always image: sameersbn/postgresql:11-20200524 volumes: - postgresql-data:/var/lib/postgresql:Z environment: - DB_USER=gitlab - DB_PASS=password - DB_NAME=gitlabhq_production - DB_EXTENSION=pg_trgm,btree_gist
gitlab: restart: always image: sameersbn/gitlab:13.5.3 depends_on: - redis - postgresql ports: - "10080:80" - "10022:22" volumes: - gitlab-data:/home/git/data:Z healthcheck: test: ["CMD", "/usr/local/sbin/healthcheck"] interval: 5m timeout: 10s retries: 3 start_period: 5m 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_ROOT_PASSWORD=12345678 - GITLAB_ROOT_EMAIL=info@cxvh.com volumes: redis-data: postgresql-data: gitlab-data:
|
常用命令:
1 2 3
| docker-compose up -d docker ps | grep gitlab_ docker logs -f <gitlab服务名>
|
常见问题:
部署jenkins
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| version: "3" services: jenkins: container_name: "jenkins" image: jenkins/jenkins:lts restart: always user: jenkins:994 ports: - "10055:8080" - "50005:50000" - "10056:10051" volumes: - ./data:/var/jenkins_home - ./docker:/usr/bin/docker - ./doocker.sock:/var/run/doocker.sock
|
常用命令:
1 2 3 4 5
| docker-compose up -d docker-compose start docker-compose restart docker-compose stop docker-compose rm
|
常见问题与技巧:
- 启动失败:
chmod -R 777 data
- 查看初始密码:
cat data/secrets/initialAdminPassword
- 插件加速:配置清华源
部署mongo
1 2 3 4 5 6 7 8 9 10 11 12
| version: '3.1' services: mongo: image: mongo restart: always ports: - 27017:27017 environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: 101123 volumes: - /home/mongotest:/data/db
|
常用操作:
1 2 3
| docker-compose up -d docker ps docker exec -it mongo_mongo_1 mongo
|
MongoDB常用命令:
1 2 3 4 5 6 7
| use testdb db.createUser({user:'test',pwd:'123456',roles:[{role:'dbOwner',db:'testdb'}]}) db.auth('test','123456') db.users.insertOne({name:'cxvh',age:12,email:'info@cxvh.com'}) db.users.find({}) db.users.updateOne({name:'test'},{$set:{email:'test@qq.com'}}) db.users.deleteOne({name:'test'})
|
- 语法文档
- 添加用户、角色示例:
db.createUser({user:'admin',pwd:'123456',roles:[{role:'dbOwner',db:'doclever'}]})
部署redis
1 2 3 4 5 6 7 8 9 10 11
| version: "3" services: redis-cxvh: image: "redis" restart: always container_name: "redis-cxvh" ports: - 15001:6379 volumes: - /home/rediscxvh:/data command: ["redis-server", "--requirepass","123456"]
|
等价docker命令:
1
| docker run -itd --restart=always --name redis-cxvh -p 15002:6379 -v /home/rediscxvh:/data redis redis-server --requirepass 123456
|
本文档持续更新,欢迎补充建议。