windows 版 docker 的安装
安装完之后 需要重启 重启后 如果报错 error 0x80370114 需要开启 一个设置
(71条消息) WIN11按照官方文档安装WSL2时出现error 0x80370114_半路杀出来的小黑同学的博客-CSDN博客
UNIX username: glls
password: 123456 输入密码的时候 密码不显示
然后 下载 Install Docker Desktop on Windows | Docker Documentation
运行 安装软件
设置 docker 镜像存储位置,要不然 会存储在C盘
设置 docker 镜像仓库地址
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"dns": [
"8.8.8.8",
"8.8.4.4"
],
"experimental": false,
"features": {
"buildkit": true
},
"registry-mirrors": [
"https://hx20l8lh.mirror.aliyuncs.com",
"https://2lqq34jg.mirror.aliyuncs.com",
"https://pee6w651.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
]
}
安装 mysql
安装镜像
docker pull mysql:5.7
根据镜像 启动容器
在D:/myworksoft/windowsdocker/mysql57/conf 目录下 创建my.cnf文件
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
lower_case_table_names=1
init_connect='SET collation_connection=utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
log-bin=mysql-bin
binlog-format=ROW
server_id=1
docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -v D:/myworksoft/windowsdocker/mysql57/conf/my.cnf:/etc/mysql/my.cnf -v D:/myworksoft/windowsdocker/mysql57/data:/var/lib/mysql -v D:/myworksoft/windowsdocker/mysql57/log:/var/log/mysql -p 3308:3306 -d c20987f18b13
安装rabbitmq,
准备 docker-compose.yml
version: "3.1"
services:
rabbitmq:
image: rabbitmq:management
restart: always
container_name: rabbitmq
ports:
- 5672:5672 #rabbitmq 服务的端口号
- 15672:15672 # rabbitmq 图形化界面的端口号
volumes:
- ./data:/var/lib/rabbitmq
安装rocketmq
version: '3.1'
services:
rmqnamesrv:
image: apache/rocketmq:4.9.4
container_name: rmqnamesrv
ports:
- 9876:9876
volumes:
- D:\myworksoft\windowsdocker\rocketmq\logs:/home/rocketmq/logs
environment:
JAVA_OPT_EXT: "-Xms512M -Xmx512M -Xmn128m"
command: sh mqnamesrv
networks:
rmq:
aliases:
- rmqnamesrv
broker:
image: apache/rocketmq:4.9.4
container_name: rmqbroker
ports:
- 10909:10909
- 10911:10911
environment:
NAMESRV_ADDR: "rmqnamesrv:9876"
JAVA_OPT_EXT: "-Xms512M -Xmx512M -Xmn128m"
volumes:
- D:\myworksoft\windowsdocker\rocketmq\logs:/home/rocketmq/logs
- D:\myworksoft\windowsdocker\rocketmq\store:/home/rocketmq/store
- D:\myworksoft\windowsdocker\rocketmq\conf\broker.conf:/home/rocketmq/broker.conf
command: sh mqbroker -c /home/rocketmq/broker.conf -n rmqnamesrv:9876
depends_on:
- rmqnamesrv
networks:
rmq:
aliases:
- rmqbroker
rmqdashboard:
image: apacherocketmq/rocketmq-dashboard:1.0.0
container_name: rocketmq-dashboard
ports:
- 8888:8080
environment:
JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
depends_on:
- rmqnamesrv
networks:
rmq:
aliases:
- rmqdashboard
networks:
rmq:
name: rmq
driver: bridge
broker.conf
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
#nameServer地址,分号分割
namesrvAddr=127.0.0.1:9876
#Broker 对外服务的监听端口
#listenPort=10911
#Broker监听的ip 注意 下面这个写法 这里有个巨坑 这里 不能写127.0.0.1 不知道为什么
brokerIP1=192.168.200.1
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
#autoCreateSubscriptionGroup=true
#删除文件时间点,默认凌晨 4点
#deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=120
#commitLog每个文件的大小默认1G
#mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
#mapedFileSizeConsumeQueue=300000
#enablePropertyFilter=true
#第一次回查的 时间间隔 3秒
#transactionTimeout=3000
#回查次数 默认15 次 这里设置成5次 达到最大回查次数 仍然没有返回 提交 或者 回滚状态, 则 按照回滚处理
#transactionCheckMax=5
#每隔两秒 回查一次
#transactionCheckInterval=2000
安装redis
创建 conf , data目录 , conf 下面 创建 redis.conf 文件
version: '3.1'
services:
redis:
image: daocloud.io/library/redis:5.0.9
#restart: always
container_name: redis
environment:
- TZ=Asia/Shanghai
ports:
- 6379:6379
volumes:
- ./conf/redis.conf:/usr/local/redis/redis.conf
- ./data:/data
command: ["redis-server","/usr/local/redis/redis.conf"]
安装elk
这里先装 el 吧 k 后续用到了再装
version: "3.1"
services:
elasticsearch:
image: daocloud.io/library/elasticsearch:7.4.2
#restart: always
container_name: elasticsearch
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- D:/myworksoft/windowsdocker/elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- D:/myworksoft/windowsdocker/elk/elasticsearch/data:/usr/share/elasticsearch/data
- D:/myworksoft/windowsdocker/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins
ports:
- 9200:9200
- 9300:9300
kibana:
image: kibana:7.4.2
#restart: always
container_name: kibana
ports:
- 5601:5601
environment:
- elasticsearch_url=http://127.0.0.1:9200
depends_on:
- elasticsearch
注意 elasticsear.yml 文件的编码 必须是 utf-8
安装mongodb
docker run -d --name mongo27017 -p 27017:27017 -v D:/myworksoft/windowsdocker/mongodb/data:/data/db mongo
如果 本地 的 mongodb 和 容器的 mongodb 同时 启动 ,则 优先访问的是 本地的 mongodb 服务,把本地mongodb 服务停止 则会访问 容器mongodb
安装nacos
1.拉去镜像
docker pull nacos/nacos-server
2.创建 映射的日志目录 与 配置文件
自定义的配置文件customer.properties
# spring
server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
server.contextPath=/nacos
server.port=${NACOS_SERVER_PORT:8848}
spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:mysql}
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
db.num=${MYSQL_DATABASE_NUM:1}
db.url.0=jdbc:mysql://127.0.0.1:3308/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
#db.url.1=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3308}/${MYSQL_SERVICE_DB_NAME}?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
### The auth system to use, currently only 'nacos' is supported:
nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}
### The token expiration in seconds:
nacos.core.auth.default.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}
### The default token:
nacos.core.auth.default.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey012345678901234567890123456789012345678901234567890123456789}
### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
nacos.core.auth.caching.enabled=${NACOS_AUTH_CACHE_ENABLE:false}
server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false}
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D
# default current work dir
server.tomcat.basedir=
## spring security config
### turn off security
nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**
# metrics for elastic search
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
nacos.naming.distro.taskDispatchThreadCount=10
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
management.endpoints.web.exposure.include=*
3.把mysql 数据库准备好
根据镜像 启动容器
docker run -d -p 8848:8848 -p 9848:9848 -p9849:9849 -e MODE=standalone -e PREFER_HOST_MODE=hostname -e JVM_XMS=512m -e JVM_XMX=512m -e JVM_XMN=512m -v D:/myworksoft/windowsdocker/nacos/custom.properties:/home/nacos/init.d/custom.properties -v D:/myworksoft/windowsdocker/nacos/logs:/home/nacos/logs --name nacos nacos/nacos-server
测试访问
安装emqx
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.0.26
端口号:1883
账号:admin
密码:public
可视化地址:http://110.40.192.129:18083/
安装nginx
version: '3.1'
services:
nginx:
#restart: always
image: daocloud.io/library/nginx:latest
container_name: nginx
ports:
- 80:80
volumes:
- D:/myworksoft/windowsdocker/nginx/conf.d/:/etc/nginx/conf.d
在conf.d 文件夹 准备 default.conf
# 这个是 /etc/nginx/conf.d/default.conf; 这个配置文件 大部分内容被注释掉了 把注释掉的内容去掉
server { # server 块是http 块中的 内容
listen 80; # nginx 默认监听的端口号
listen [::]:80;
server_name localhost; # ip
# location块
# root:将接收到的请求根据/usr/share/nginx/html去查找静态资源
# index: 默认去上述的路径中找到index.html或者index.htm
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#50x 错误页面跳转
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
潘多拉 (Pandora)
【github】
安装Pandora 本地chatgpt 服务
🔰 安全VPN推荐(排名前3):
1.ExpressVPN:https://bittly.cc/expressvpn
2.Surfshark :https://bittly.cc/Surfshark
3.NordVPN:https://bittly.cc/NordVPN
docker pull pengzhile/pandora
docker run -e PANDORA_CLOUD=cloud -e PANDORA_SERVER=0.0.0.0:8899 -p 8899:8899 -d pengzhile/pandora
安装canal
启动不了 还未解决 暂时用 windows 版的canal
#拉取镜像
docker pull canal/canal-server
#先跑起来容器
docker run --name canal -p 11111:11111 -d canal/canal-server
#把容器内的配置文件拿出来
docker cp canal:/home/admin/canal-server/conf/canal.properties D:/myworksoft/windowsdocker/canal/canal-server/
docker cp canal:/home/admin/canal-server/conf/example/instance.properties D:/myworksoft/windowsdocker/canal/canal-server/
#删除容器 重新构件容器
docker run --name canal -p 11111:11111 -v D:/myworksoft/windowsdocker/canal/canal-server/instance.properties:/home/admin/canal-server/conf/example/instance.properties -v D:/myworksoft/windowsdocker/canal/canal-server/canal.properties:/home/admin/canal-server/conf/canal.properties -d 0c7f1d62a7d8e6796fb5e9e99a39b983dd225d2f8505975e92fe8ebc4956dfc6
mysql设置
create user canal identified by 'canal';
grant select,replication slave, replication client on *.* to 'canal'@'%';
flush privileges;
# 查看bin-log是否开启 on: 开启 off: 关闭
show variables like 'log_bin';
my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
# start binlog
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
安装gitlab
#拉取镜像
docker pull gitlab/gitlab-ce
#根据镜像启动容器
$ docker run -d -p 444:443 -p 98:80 -p 222:22 --name gitlab --restart always -v D:/myworksoft/windowsdocker/gitlab/config:/etc/gitlab -v D:/myworksoft/windowsdocker/gitlab/logs:/var/log/gitlab -v D:/myworksoft/windowsdocker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
# -d:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
#$ docker run -d -p 444:443 -p 98:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v #/home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
安装完之后 可以 登录 使用 root 初始密码 需要查询下面这个文件
![image-20231202144431643](https://gllspictures.oss-cn-beijing.aliyuncs.com/img/20231202144446.png)
登录进去之后 创建工程 发现 工程的地址 是 docker 容器主机名称 ,需要把主机名称 改成 ip 的形式 怎么改?
修改gitlab.rb 这个文件,建议 在容器内部修改
![image-20231202144616283](https://gllspictures.oss-cn-beijing.aliyuncs.com/img/20231208133544.png)
编辑这个文件 里面填上这三个配置
![image-20231202144808733](https://gllspictures.oss-cn-beijing.aliyuncs.com/img/20231202144811.png)
# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.200.1'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.200.1'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口
:wq #保存配置文件并退出
然后 就可以 克隆了
如果想用docker-compose 的话
version: '3.1'
services:
zendao:
image: gitlab/gitlab-ce
#restart: always
container_name: gitlab
ports:
- 444:443
- 98:80
- 222:22
volumes:
- ./config:/etc/gitlab
- ./data:/var/opt/gitlab
- ./logs:/var/log/gitlab
安装postgresql
version: '3.1'
services:
postgres:
image: postgres:12-alpine
container_name: xybdiy_postgres
#restart: always
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: 123456
ports:
- 5432:5432
volumes:
- ./data:/var/lib/postgresql/data
安装禅道
准备好 挂载的容器卷目录
version: '3.1'
services:
zendao:
image: docker.io/idoop/zentao:latest
#restart: always
container_name: zendao
environment:
MYSQL_ROOT_PASSWORD: 123456
ports:
- 8000:80
volumes:
- ./app:/app/zentaopms
- ./data:/var/lib/mysql
admin 123456 登录 然后修改密码 看到如下页面
![image-20231202152418468](https://gllspictures.oss-cn-beijing.aliyuncs.com/img/20231208133635.png)
问题:
Docker: Error response from daemon: Ports are not available 端口没被占用,却显示被占用
(71条消息) Docker: Error response from daemon: Ports are not available 端口没被占用,却显示被占用_比特桃的博客-CSDN博客
问题解决
其实这是Windows中的一个小问题,只需要重启NAT网络就可以解决了,执行如下两条命令:
net stop winnat
net start winnat