docker-compose的使用以及常用服务配置
docker-compose
的安装文档
安装docker-compose
1 | sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
查看编辑配置文件
cd /home/
vi docker-compose.yml
1 | version: '1' |
常用命令
1 | docker-compose up -d # 运行起来 |
使用示例详细记录
docker 搭建接口管理平台(doclever) 环境
DOClever git地址
cd /home/
mkdir doclever
cd doclever
vi docker-compose.yml
# vi 创建并编辑
1 | version: "2" |
- 首次启动
docker-compose up -d
- 如果没权限先执行:
chmod +x /usr/local/bin/docker-compose
- 查看启动的容器:
docker ps
- 查看并过滤启动的容器:
docker ps | grep doclever
1
2
3
4
5
6firewall-cmd --state # 查看防火墙状态
firewall-cmd --list-all # 查看放行的端口
firewall-cmd --add-port=20080/tcp --zone=public --permanent
firewall-cmd --reload
firewall-cmd --list-all
# 还需在云服务器上设置防火墙规则 - 打开 cxvh.com:10000
- 登录 -> 管理总后台 -> DOClever -> 修改密码
部署doclever
doclever
在docker hub的地址,下面配置docker-compose.yml
- 启动后默认账号密码都是
DOClever
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# docker-compose.yml
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"
# 在 win 上面非常诡异的问题是,先把下面两行注释掉运行起来,再暂停去掉注释重启启动就好了
volumes:
- /srv/doclever/db:/data/db
部署gitlab
1 | version: '2.3' |
docker-compose up -d
添加或改完配置文件后是直接运行这个docker ps | grep gitlab_
筛选下 gitlabdocker logs -f gilab_gitlab_1
查看下几个服务有没有正常跑起来- 启动常见错误
- 常见错误
- 运行后 502 一般 2 个原因导致的
- 端口是否占用
swap
是否配置,如未配置可参考下面操作,或者在宝塔控制面板操作1
2
3
4
5
6
7
8
9
10
11
12# 启动 swap 分区
创建swap大小为bs*count=4294971392(4G)
cat /proc/swaps
free
dd if=/dev/zero of=/mnt/swap bs=512 count=8388616
mkswap /mnt/swap
# vm.swappiness 中的数值是否为 0,为 0 则根据实际需要调整成 60
sudo vim /etc/sysctl.conf
swapon /mnt/swap
echo "/data/swap swap swap defaults 0 0" >> /etc/fstab
cat /proc/swaps
free
部署jenkins
1 | version: "3" |
docker-compose
命令docker-compose up -d
首次启动docker-compose start
启动docker-compose restart
重启docker-compose stop
停止docker-compose rm
移除掉
- 小技巧
- 一直启动运行失败?
chmod -R 777 data
chmod -R 777 ./
- 浏览器访问一直转圈圈?
- 改为清华源:
vim data/hudson.model.UpdateCenter.xml
- or
vim /var/jenkins_home/hudson.model.UpdateCenter.xml
- 改为清华源:
- 查看密码
cat data/secrets/initialAdminPassword
- or
cat /var/jenkins_home/secrets/initialAdminPassword
- 安装完成后密码在日志 or
- git bash
cat ./data/secrets/initialAdminPassword
- git bash
- 一直启动运行失败?
- 插件(建议配置镜像地址后再安装插件)
Update Site
配置加速地址- 原始地址:https://updates.jenkins.io/update-center.json
- 清华加速地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
- 在插件页面的控制台运行,然后点安装
1
2
3
4
5
6
7
8
9var arr="Display URL API||Mailer||LDAP||Oracle Java SE Development Kit Installer||Structs||Pipeline: Step API||Credentials||Plain Credentials||SSH Credentials||Credentials Binding||Authentication Tokens API||Docker Commons||SCM API||Script Security||Pipeline: API||Pipeline: Supporting APIs||Token Macro||Build Timeout||Durable Task||Pipeline: Nodes and Processes||Plugin Utilities API||Font Awesome API||Popper.js API||JQuery3 API||Bootstrap 4 API||Snakeyaml API||Jackson 2 API||ECharts API||Checks API||JUnit||Matrix Project||Command Agent Launcher||Resource Disposer||Workspace Cleanup||Command Agent Launcher||Apache HttpComponents Client 4.x API||JSch dependency||Git client||GIT server||Pipeline: Build Step||Pipeline: SCM Step||bouncycastle API||MapDB API||Subversion||External Monitor Job Type||Folders||JavaScript GUI Lib: ACE Editor bundle||Pipeline: Groovy||Branch API||Pipeline: Job||Pipeline: Multibranch||JAXB||Config File Provider||Pipeline NPM Integration||Token Macro||Branch API||SSH Build Agents||Docker API||Docker||Pipeline: Shared Groovy Libraries||Git||Pipeline: GitHub Groovy Libraries||Snakeyaml API||docker-build-step||OkHttp||Gitlab Authentication||Docker Compose Build Step||Display URL API||OWASP Markup Formatter||Ant||Pipeline Utility Steps||JavaScript GUI Lib: ACE Editor bundle||Durable Task||Pipeline: Input Step||Pipeline: Stage Step||Pipeline Graph Analysis||Pipeline: REST API||JavaScript GUI Lib: Handlebars bundle||JavaScript GUI Lib: Moment.js bundle||Pipeline: Stage View||Git||Plain Credentials||Pipeline: Job||Pipeline: API||Pipeline: Stage Step||SSH Credentials||Credentials||Javadoc||Credentials Binding||WMI Windows Agents||Matrix Authorization Strategy||jQuery||PAM Authentication||jQuery UI||Pipeline: SCM Step||Docker Slaves||Matrix Authorization Strategy||Pipeline: Milestone Step||Pipeline: Input Step||WMI Windows Agents||JavaScript GUI Lib: Handlebars bundle||bouncycastle API||JavaScript GUI Lib: jQuery bundles (jQuery and jQuery UI)||Pipeline: Stage Tags Metadata||Infrastructure plugin for Publish Over X||JavaScript GUI Lib: Moment.js bundle||Email Extension||Authentication Tokens API||JUnit||Pipeline: Groovy||Pipeline Graph Analysis||Timestamper||Pipeline: Model API||Pipeline: Declarative Extension Points API||Pipeline: Shared Groovy Libraries||GitHub API||GitHub||GitHub Branch Source||Pipeline: Basic Steps||Docker Pipeline||SCM API||Apache HttpComponents Client 4.x API||Oracle Java SE Development Kit Installer||Pipeline: Model API||Docker API||Pipeline: Declarative Agent API||JSch dependency||Config File Provider||ruby-runtime||Gitlab Hook||Mailer||Structs||GitHub||Pipeline: Nodes and Processes||Extended Read Permission||MapDB API||Pipeline: Basic Steps||Folders||GitLab||Jackson 2 API||Pipeline: Declarative||Git client||SSH Build Agents||Script Security||GitHub API||Pipeline: Step API||Matrix Project||PAM Authentication||Qy Wechat Notification||Localization Support||Trilead API||Localization: Chinese (Simplified)||AnsiColor||Build With Parameters||ThinBackup||Role-based Authorization Strategy".split("||")
var tab=document.getElementById('plugins')
for(var i=0;i<arr.length;i++){
for(var j=1;j<tab.tBodies[0].rows.length;j++){
if(tab.tBodies[0].rows[j].cells[1]&&tab.tBodies[0].rows[j].cells[1].getElementsByTagName('a')[0].innerText===arr[i]){
tab.tBodies[0].rows[j].cells[0].getElementsByTagName('input')[0].checked=true
}
}
}
部署mongo
- 官网
mongo
的dockerhub地址1
2
3
4
5
6
7
8
9
10
11
12
13
14version: '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
# win用户路径如:- E:/learn/mongo/db:/data/db- 配置完后运行:
docker-compose up -d
docker ps
# 查看 mongodb 容器名称 —>mongo_mongo_1
docker exec -it mongo_mongo_1 mongo
连接到 mongo 数据库交互终端(mongodb 的 shell 工具)show dbs
use admin
db.auth('root','123')
# 出来 1 说明连接成功show dbs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19use testdb
# 添加用户角色 dbOwner(角色:数据库的所有者)
db.createUser({user:'test',pwd:'123456',roles:[{role:'dbOwner',db:'testdb'}]})
ctr+c
docker-compose stop
docker-compose start
docker ps # 查看启动成功没
docker exec -it mongo_mongo_1 mongo
use testdb # 如果出错就重来
db.auth('test','123456')
db.users.insertOne({name:'cxvh',age:12,email:'info@cxvh.com'})
show collections
db.users.find({})
db.users.insertOne({name:'test',age:13})
db.users.find({})
db.users.updateOne({name:'test',{$set:{email:'test@qq.com'}}}) # 更新数据
db.users.find({})
db.users.deleteOne({name:'test'}) # 删除
db.users.find({})- 语法文档
- 添加用户、角色
db.createUser({user:'admin',pwd:'123456',roles:[{role:'dbOwner',db:'doclever'}]})
部署redis
- 点击dockerhub查看官方文档安装方法
1
2
3
4
5
6
7
8
9
10
11
12# docker-compose.yml
version: "3"
services:
redis-cxvh:
image: "redis" # redis:5 ---> 5 是版本号 默认最新版本可以去掉:5
restart: always
container_name: "redis-cxvh" # 起个名字 方便管理
ports:
- 15001:6379
volumes:
- E:/learn/大前端/01.阶段一-开启大前端的大门/05.NoSQL数据库的设计与集成/rediscxvh:/data # 数据映射到数组机,持久化 # - /home/rediscxvh:/data
command: ["redis-server", "--requirepass","123456"] # 设置 redis 默认密码
docker-compose
相当于 docker
的启动方式-> docker run -itd --restart=always --name redis-cxvh -p 15002:6379 -v /home/rediscxvh:/data:/data redis redis-server --requirepass 123456
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 BARAN的小站🔥🔥🔥!