- docker run -d \
- --name mysql \
- -p 3306:3306 \
- -e TZ=Asia/Shanghai \
- -e MYSQL_ROOT_PASSWORD=123 \
- mysql
- cd /usr
- mkdir mysql
- cd mysql/
- mkdir data
- mkdir conf
- mkdir init
可以手动导入自己的数据库信息
- docker run -d \
- --name mysql \
- -p 3306:3306 \
- -e TZ=Asia/Shanghai \
- -e MYSQL_ROOT_PASSWORD=123 \
- -v /usr/mysql/data:/var/lib/mysql \
- -v /usr/mysql/conf:/etc/mysql/conf.d \
- -v /usr/mysql/init:/docker-entrypoint-initdb.d \
- mysql
然后就可以连接了
常见操作指令
- # 4.查看root目录,可以发现~/mysql/data目录已经自动创建好了
- ls -l mysql
- # 结果:
- 总用量 4
- drwxr-xr-x. 2 root root 20 5月 19 15:11 conf
- drwxr-xr-x. 7 polkitd root 4096 5月 19 15:11 data
- drwxr-xr-x. 2 root root 23 5月 19 15:11 init
-
- # 查看data目录,会发现里面有大量数据库数据,说明数据库完成了初始化
- ls -l data
-
- # 5.查看MySQL容器内数据
- # 5.1.进入MySQL
- docker exec -it mysql mysql -uroot -p123
- # 5.2.查看编码表
- show variables like "%char%";
- # 5.3.结果,发现编码是utf8mb4没有问题
- +--------------------------+--------------------------------+
- | Variable_name | Value |
- +--------------------------+--------------------------------+
- | character_set_client | utf8mb4 |
- | character_set_connection | utf8mb4 |
- | character_set_database | utf8mb4 |
- | character_set_filesystem | binary |
- | character_set_results | utf8mb4 |
- | character_set_server | utf8mb4 |
- | character_set_system | utf8mb3 |
- | character_sets_dir | /usr/share/mysql-8.0/charsets/ |
- +--------------------------+--------------------------------+
-
- # 6.查看数据
- # 6.1.查看数据库
- show databases;
- # 结果,hmall是黑马商城数据库
- +--------------------+
- | Database |
- +--------------------+
- | hmall |
- | information_schema |
- | mysql |
- | performance_schema |
- | sys |
- +--------------------+
- 5 rows in set (0.00 sec)
- # 6.2.切换到hmall数据库
- use hmall;
- # 6.3.查看表
- show tables;
- # 结果:
- +-----------------+
- | Tables_in_hmall |
- +-----------------+
- | address |
- | cart |
- | item |
- | order |
- | order_detail |
- | order_logistics |
- | pay_order |
- | user |
- +-----------------+
- # 6.4.查看address表数据
- +----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+
- | id | user_id | province | city | town | mobile | street | contact | is_default | notes |
- +----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+
- | 59 | 1 | 北京 | 北京 | 朝阳区 | 13900112222 | 金燕龙办公楼 | 李佳诚 | 0 | NULL |
- | 60 | 1 | 北京 | 北京 | 朝阳区 | 13700221122 | 修正大厦 | 李佳红 | 0 | NULL |
- | 61 | 1 | 上海 | 上海 | 浦东新区 | 13301212233 | 航头镇航头路 | 李佳星 | 1 | NULL |
- | 63 | 1 | 广东 | 佛山 | 永春 | 13301212233 | 永春武馆 | 李晓龙 | 0 | NULL |
- +----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+
- 4 rows in set (0.00 sec)
可以自己试试
exit退出
可以创建一个网络
docker network create network1
# 2.然后查看网络
docker network ls
# 3.让dd和mysql都加入该网络,注意,在加入网络时可以通过--alias给容器起别名 # 这样该网络内的其它容器可以用别名互相访问!
# 3.1.mysql容器,指定别名为db,另外每一个容器都有一个别名是容器名
docker network connect network1 mysql --alias db
我这里就不用了
docker network connect network1 mysql
docker network inspect network1
可以进入容器
docker exec -it 容器名称 bash
docker network create hm-net
- docker run -d \
- --name es \
- -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
- -e "discovery.type=single-node" \
- -v es-data:/usr/share/elasticsearch/data \
- -v es-plugins:/usr/share/elasticsearch/plugins \
- --privileged \
- --network hm-net \
- -p 9200:9200 \
- -p 9300:9300 \
- elasticsearch:7.12.1
因为我们还需要部署 kibana 容器,因此需要让 es 和 kibana 容器互联,所有先创建一个网络:
docker network create es-net
采用的版本为 7.12.1 的 elasticsearch;自己 pull 是非常大的有 1G 左右
百度网盘
链接: https://pan.baidu.com/s/1Xa2nhYn3yX4i1e9Rt8mE_w
提取码: ri83
docker load -i es.tar
- docker run -d \
- --name es \
- -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
- -e "discovery.type=single-node" \
- -v es-data:/usr/share/elasticsearch/data \
- -v es-plugins:/usr/share/elasticsearch/plugins \
- --privileged \
- --network es-net \
- -p 9200:9200 \
- -p 9300:9300 \
- elasticsearch:7.12.1
命令解释:
-e "cluster.name=es-docker-cluster":设置集群名称
-e "http.host=0.0.0.0":监听的地址,可以外网访问
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m":内存大小
-e "discovery.type=single-node":非集群模式
-v es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录
-v es-logs:/usr/share/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录
-v es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录
--privileged:授予逻辑卷访问权
--network es-net :加入一个名为es-net的网络中
-p 9200:9200:端口映射配置
浏览路径为:9200 端口
- docker run -d \
- --name kibana \
- -e ELASTICSEARCH_HOSTS=http://es:9200 \
- --network=hm-net \
- -p 5601:5601 \
- kibana:7.12.1
链接: https://pan.baidu.com/s/1K1Eu50epB7FsXo_unHwwCA 提取码: jwqq
docker load -i kibana.tar
- docker run -d \
- --name kibana \
- -e ELASTICSEARCH_HOSTS=http://es:9200 \
- --network=es-net \
- -p 5601:5601 \
- kibana:7.12.1
--network es-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中
-e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
-p 5601:5601:端口映射配置
kibana启动一般比较慢,需要多等待一会,可以通过命令:
docker logs -f kibana
如果有下面,说明成功了
浏览路径为:5601 端口
- # 进入容器内部
- docker exec -it elasticsearch /bin/bash
-
- # 在线下载并安装
- ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip
-
- #退出
- exit
- #重启容器
- docker restart elasticsearch
docker volume inspect es-plugins
显示结果:
- [
- {
- "CreatedAt": "2024-07-09T10:39:55+08:00",
- "Driver": "local",
- "Labels": null,
- "Mountpoint": "/var/lib/docker/volumes/es-plugins/_data",
- "Name": "es-plugins",
- "Options": null,
- "Scope": "local"
- }
- ]
链接: https://pan.baidu.com/s/18e5I1V8uibD5NTxFJI7IFg 提取码: 2bk7
cd /var/lib/docker/volumes/es-plugins/_data
docker restart es
查看启动日志
docker logs -f es
IK分词器包含两种模式:
在IKAnalyzer.cfg.xml配置文件内容添加:
- "1.0" encoding="UTF-8"?>
- properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
- <properties>
- <comment>IK Analyzer 扩展配置comment>
-
- <entry key="ext_dict">ext.dicentry>
- properties>
- docker restart es
-
- # 查看 日志
- docker logs -f elasticsearch
日志中已经成功加载ext.dic配置文件
5)测试效果:
注意当前文件的编码必须是 UTF-8 格式,严禁使用Windows记事本编辑
在互联网项目中,在网络间传输的速度很快,所以很多语言是不允许在网络上传递的,如:关于宗教、政治等敏感词语,那么我们在搜索时也应该忽略当前词汇。
IK分词器也提供了强大的停用词功能,让我们在索引时就直接忽略当前的停用词汇表中的内容。
IKAnalyzer.cfg.xml配置文件内容添加:
在 stopword.dic 添加停用词
重启elasticsearch
- # 重启服务
- docker restart elasticsearch
- docker restart kibana
-
- # 查看 日志
- docker logs -f elasticsearch
日志中已经成功加载stopword.dic配置文件
注意当前文件的编码必须是 UTF-8 格式,严禁使用Windows记事本编辑
部署es集群可以直接使用docker-compose来完成,不过要求你的Linux虚拟机至少有4G的内存空间
- version: '2.2'
- services:
- es01:
- image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
- container_name: es01
- environment:
- - node.name=es01
- - cluster.name=es-docker-cluster
- - discovery.seed_hosts=es02,es03
- - cluster.initial_master_nodes=es01,es02,es03
- - bootstrap.memory_lock=true
- - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- ulimits:
- memlock:
- soft: -1
- hard: -1
- volumes:
- - data01:/usr/share/elasticsearch/data
- ports:
- - 9200:9200
- networks:
- - elastic
- es02:
- image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
- container_name: es02
- environment:
- - node.name=es02
- - cluster.name=es-docker-cluster
- - discovery.seed_hosts=es01,es03
- - cluster.initial_master_nodes=es01,es02,es03
- - bootstrap.memory_lock=true
- - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- ulimits:
- memlock:
- soft: -1
- hard: -1
- volumes:
- - data02:/usr/share/elasticsearch/data
- networks:
- - elastic
- es03:
- image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
- container_name: es03
- environment:
- - node.name=es03
- - cluster.name=es-docker-cluster
- - discovery.seed_hosts=es01,es02
- - cluster.initial_master_nodes=es01,es02,es03
- - bootstrap.memory_lock=true
- - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- ulimits:
- memlock:
- soft: -1
- hard: -1
- volumes:
- - data03:/usr/share/elasticsearch/data
- networks:
- - elastic
-
- volumes:
- data01:
- driver: local
- data02:
- driver: local
- data03:
- driver: local
-
- networks:
- elastic:
- driver: bridge
docker-compose up
docker pull mongo:latest
创建外部挂载的文件并进行授权
- mkdir -p /mydata/mongo/config
- mkdir -p /mydata/mongo/data
- mkdir -p /mydata/mongo/logs
- touch /mydata/mongo/config/mongod.conf
- chmod 777 /mydata/mongo
然后,使用编辑器打开mongod.conf文件,
- cd /mydata/mongo/config
- vim mongod.conf
并添加以下内容:
- # 数据库存储路径
- dbpath=/mydata/mongo/data
-
- # 日志文件路径
- logpath=/mydata/mongo/logs/mongod.log
-
- # 监听的端口
- port=27017
-
- # 允许所有的 IP 地址连接
- bind_ip=0.0.0.0
-
- # 启用日志记录
- journal=true
-
- # 是否后台运行
- fork=true
-
- # 启用身份验证
- #auth=true
运行MongoDB容器
- docker run -dit --name mongo \
- -p 27017:27017 \
- -v /mydata/mongo/config/mongod.conf:/etc/mongod.conf \
- -v /mydata/mongo/data:/data/db \
- -v /mydata/mongo/logs:/var/log/mongodb \
- -e MONGO_INITDB_ROOT_USERNAME=admin \
- -e MONGO_INITDB_ROOT_PASSWORD=123456 \
- --restart=always \
- mongo
参数说明
- -i:表示运行容器
- -t:表示容器启动后进入其命令行
- -d:守护式方式创建容器在后台运行
- -name:容器名称
- -p 27017:27017 端口映射 前面是外部访问端口:后面内部开发的端口,mongoDB默认是27017端口
- -v /mydata/mongo/data:/data/db 给容器内部的数据文件指向mongodbdata ,即删除了容器,容器数据也不会丢失,下次创建容器继续挂载到/mydata/mongo/data即可看到删除容器之前的数据
- -e MONGO_INITDB_ROOT_USERNAME=admin
- -e MONGO_INITDB_ROOT_PASSWORD=123456 指定容器内的环境变量 初始化容器账号、密码
- --restart=always 容器挂掉后自动重启
进入容器内部
- docker exec -it mongo /bin/mongosh
- //或
- docker exec -it mongo bash
-
- //登录容器
- mongo admin -u admin -p 123456 -u 后面的是创建容器指定的账号 -p 后面跟的是创建容器指定的密码
说明:
如果MongoDB6.0及以上使用:
docker exec -it mongo /bin/mongosh
如果是6.0以下的版本使用:
docker exec -it mongo /bin/mongo
mongo中各个角色对应的权限
权限 说明
read 允许用户读取指定数据库
readWrite 允许用户读写指定数据库
dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin 允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户
clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
root 只在admin数据库中可用。超级账号,超级权限
进入mongodb
docker exec -it 容器名称 mongo
docker run --restart=always -p 6379:6379 --name myredis -d redis:6.2.1 --requirepass ningzaichun
或
- docker run --restart=always \
- -p 6379:6379 \
- --name myredis \
- -v /home/dj/redis/redis.conf:/etc/redis/redis.conf \
- -v /home/dj/redis/data:/data \
- -d redis:7.0.12 redis-server /etc/redis/redis.conf
docker使用 参考地址CentOS Docker 安装 | 菜鸟教程 (runoob.com)
安装redis参考
https://www.runoob.com/docker/docker-install-redis.html
查看可用的redis版本,执行命令:docker search redis
拉取Redis镜像:从Docker Hub上获取Redis官方镜像,执行命令:docker pull <镜像名称>:<版本号>
docker pull redis
如果拉取失败就换源
yum install -y yum-utils
- yum-config-manager \
- --add-repo \
- https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1. 挂载redis的配置文件:redis.conf
(1) 建立配置文件放置目录,执行命令:mkdir 目录/redis/conf/
(2) 生成配置文件,执行命令:touch redis.conf
(3) 写入内容:redis.conf的标准文件在redis官网也可以找到
- # bind 192.168.1.100 10.0.0.1
- # bind 127.0.0.1 ::1
- #bind 127.0.0.1
- protected-mode no
- port 6379
- tcp-backlog 511
- requirepass 000415
- timeout 0
- tcp-keepalive 300
- daemonize no
- supervised no
- pidfile /var/run/redis_6379.pid
- loglevel notice
- logfile ""
- databases 30
- always-show-logo yes
- save 900 1
- save 300 10
- save 60 10000
- stop-writes-on-bgsave-error yes
- rdbcompression yes
- rdbchecksum yes
- dbfilename dump.rdb
- dir ./
- replica-serve-stale-data yes
- replica-read-only yes
- repl-diskless-sync no
- repl-disable-tcp-nodelay no
- replica-priority 100
- lazyfree-lazy-eviction no
- lazyfree-lazy-expire no
- lazyfree-lazy-server-del no
- replica-lazy-flush no
- appendonly yes
- appendfilename "appendonly.aof"
- no-appendfsync-on-rewrite no
- auto-aof-rewrite-percentage 100
- auto-aof-rewrite-min-size 64mb
- aof-load-truncated yes
- aof-use-rdb-preamble yes
- lua-time-limit 5000
- slowlog-max-len 128
- notify-keyspace-events ""
- hash-max-ziplist-entries 512
- hash-max-ziplist-value 64
- list-max-ziplist-size -2
- list-compress-depth 0
- set-max-intset-entries 512
- zset-max-ziplist-entries 128
- zset-max-ziplist-value 64
- hll-sparse-max-bytes 3000
- stream-node-max-bytes 4096
- stream-node-max-entries 100
- activerehashing yes
- hz 10
- dynamic-hz yes
- aof-rewrite-incremental-fsync yes
- rdb-save-incremental-fsync yes
2. 挂载redis的持久化文件
建立数据文件放置目录,执行命令:mkdir 目录/redis/data/
- docker run -p 6379:6379 --restart=always \
- --log-opt max-size=100m \
- --log-opt max-file=2 \
- --name myredis \
- -v /root/redis/conf/redis.conf:/etc/redis/redis.conf \
- -v /root/redis/data:/data \
- -d redis redis-server /etc/redis/redis.conf \
- --appendonly yes --requirepass 123456
参数说明:
1.-restart=always 总是开机启动
2.-log 记录日志
3.-p 端口映射
4.-name 容器名
5.-v 数据卷挂载
6.-d redis 后台启动redis
7.redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录 /etc/redis/redis.conf,也就是linux下的 /home/redis/myredis/myredis.conf
8.-appendonly yes 开启持久化
9.-requirepass 123456 设置密码
简单的启动命令示例:docker run --name myredis -p 6379:6379 -d redis
查看本地redis镜像,执行命令:
docker images
关闭容器命令:docker stop <容器名>
示例:docker stop myredis
docker ps
docker ps -a | grep myredis
docker logs --since 30m <容器名>
此处 --since 30m 为查看此容器30分钟之内的日志情况docker exec -it <容器名> /bin/bash
查看所有在运行的容器:docker ps -a
关闭容器:docker stop <容器名>
删除容器:docker rm <容器名>
查看全部镜像 命令:docker images
删除镜像 命令 :docker rmi <容器 id>
docker pull nginx:1.24.0
docker run -p 80:80 -d --name nginx nginx:1.24.0
拷贝 Nginx 主配置文件/etc/nginx/nginx.conf
:
- # nginx容器名、/etc/nginx/nginx.conf 配置文件容器内的地址
- # D:\Programing\Docker\volumns\nginx\conf 宿主机上拷贝的目标地址
- docker cp nginx:/etc/nginx/nginx.conf D:\Programing\Docker\volumns\nginx\conf
Nginx 主配置文件包含了影响 Nginx 全局行为的命令,包括事件处理、HTTP 服务器的基本配置(如监听端口、文件路径等)、日志文件位置以及其他重要配置。
拷贝 html 目录:/usr/share/nginx/html
docker cp nginx:/usr/share/nginx/html D:\Programing\Docker\volumns\nginx
这是 Nginx 的默认文档根目录。当您使用 Nginx 来提供静态网页服务时,放置在此目录下的文件和目录将可以通过 web 访问。(注:可以在配置文件 server 块中,使用 root 指令指定根目录)
拷贝文件完成后,删除第一次试运行的 nginx 容器:
正式运行 nginx,将宿主机上的配置文件和文档根目录挂载到容器上:
- # 多行便于展示()
- docker run -p 81:80 \
- --network api-my_net \
- -d --name nginx \
- -v D:\Programing\Docker\volumns\nginx\conf\nginx.conf:/etc/nginx/nginx.conf \
- -v D:\Programing\Docker\volumns\nginx\conf\conf.d:/etc/nginx/conf.d \
- -v D:\Programing\Docker\volumns\nginx\html:nginx:/usr/share/nginx/html \
- nginx:1.24.0
-
- # 可直接复制该行命令运行
- docker run -p 81:80 --network my_net -d --name nginx -v D:\Programing\Docker\volumns\nginx\conf\nginx.conf:/etc/nginx/nginx.conf -v D:\Programing\Docker\volumns\nginx\conf\conf.d:/etc/nginx/conf.d -v D:\Programing\Docker\volumns\nginx\html:/usr/share/nginx/html nginx:1.24.0
参数解释:
--network:将容器加入到名为 my_net 的网络。注:如果该网络不存在,docker 会报错。若网络不存在,需要执行docker network create my_net创建。
-p:端口映射,冒号前为宿主机端口,冒号后为容器内的端口,即宿主机上访问 81 端口的 HTTP 请求会被交给 nginx 容器的 80 端口。
-d:后台运行容器;
--name:指定容器名称,本例中名称为 nginx。
-v:挂载配置文件、html 目录到宿主机;冒号前为宿主机文件路径,冒号后为挂载到容器中的路径。可以看到宿主机被挂载的三个目录/文件是第一次运行时从容器内拷贝出来的,
docker pull nacos/nacos-server:v2.1.0-slim
mkdir -p /root/apply/docker/apply/nacos/logs/
mkdir -p /root/apply/docker/apply/nacos/init.d/
3.2.2.配置文件运行nacos
- docker run -d \
- --name nacos \
- -p 8848:8848 \
- -p 9848:9848 \
- -p 9849:9849 \
- --privileged=true \
- --restart=always \
- -e JVM_XMS=256m \
- -e JVM_XMX=256m \
- -e MODE=standalone \
- -e PREFER_HOST_MODE=hostname \
- -e SPRING_DATASOURCE_PLATFORM=mysql \
- -e MYSQL_SERVICE_HOST=192.168.42.129 \
- -e MYSQL_SERVICE_PORT=3306 \
- -e MYSQL_SERVICE_DB_NAME=nacos210 \
- -e MYSQL_SERVICE_USER=root \
- -e MYSQL_SERVICE_PASSWORD=123 \
- -v /root/apply/docker/apply/nacos/logs:/home/nacos/logs \
- -v /root/apply/docker/apply/nacos/init.d/custom.properties:/etc/nacos/init.d/custom.properties \
- -v /root/apply/docker/apply/nacos/data:/home/nacos/data \
- nacos/nacos-server:v2.1.0-slim
- -e MYSQL_SERVICE_HOST=192.168.42.129 //此处是数据库地址 (数据库也在这个docker中)
- -e MYSQL_SERVICE_PORT=3306 // 数据库端口
- -e MYSQL_SERVICE_DB_NAME=nacos210//数据库名
- -e MYSQL_SERVICE_USER=root // 数据库账号
- -e MYSQL_SERVICE_PASSWORD=123 //数据库密码
5.解读
- docker 启动容器
-
- docker 启动容器
- docker run \
-
- 容器名称叫nacos -d后台运行
- --name nacos -d \
-
- nacos默认端口8848 映射到外部端口8848
- -p 8848:8848 \
-
- naocs 应该是2.0版本以后就需要一下的两个端口 所以也需要开放
- -p 9848:9848
- -p 9849:9849
- --privileged=true \
-
- docker重启时 nacos也一并重启
- --restart=always \
-
- -e 配置 启动参数
- 配置 jvm
- -e JVM_XMS=256m
- -e JVM_XMX=256m \
-
- 单机模式
- -e MODE=standalone
- -e PREFER_HOST_MODE=hostname \
-
- 数据库是mysql 配置持久化 不使用nacos自带的数据库
- -e SPRING_DATASOURCE_PLATFORM=mysql \
-
- 写自己的数据库地址
- -e MYSQL_SERVICE_HOST=###### \
-
- 数据库端口号
- -e MYSQL_SERVICE_PORT=3306 \
-
- mysql的数据库名称
- -e MYSQL_SERVICE_DB_NAME=nacos \
-
- mysql的账号密码
- -e MYSQL_SERVICE_USER=root
- -e MYSQL_SERVICE_PASSWORD=root \
-
- 配置mysql时区
- -e MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai \
-
- -v 映射docker内部的文件到docker外部 我这里将nacos的日志 数据 以及配置文件 映射出来
- 映射日志
- -v /root/apply/docker/apply/nacos/logs:/home/nacos/logs \
-
- 映射配置文件 (应该没用了 因为前面已经配置参数了)
- -v /root/apply/docker/apply/nacos/init.d/custom.properties:/etc/nacos/init.d/custom.properties \
-
- 映射nacos的本地数据 也没啥用因为使用了mysql
- -v /root/apply/docker/apply/nacos/data:/home/nacos/data \
-
- 启动镜像名称(指定了v2.1.0-slim这个版本)
- nacos/nacos-server:v2.1.0-slim
链接: https://pan.baidu.com/s/1JZccwhuxvJHticF7LWg8yw 提取码: hw7w
上传mq.tar
加载镜像
docker load -i mq.tar
运行
- docker run \
- -e RABBITMQ_DEFAULT_USER=cqh \
- -e RABBITMQ_DEFAULT_PASS=cqh \
- -v mq-plugins:/plugins \
- --name mq \
- --hostname mq \
- -p 15672:15672 \
- -p 5672:5672 \
- --network es-net\
- -d \
- rabbitmq:3.8-management
拉取镜像
sudo docker pull hub.zentao.net/app/zentao:18.5
其他镜像版本参
https://hub.docker.com/r/easysoft/zentao/tags
sudo docker network create --subnet=[ip范围] [网络驱动名]
例如
sudo docker network create --subnet=172.172.172.0/24 zentaonet
- sudo docker run \
- --name [容器名] \
- -p [主机端口]:80 \
- --network=[网络驱动名] \
- --ip [容器IP] \
- --mac-address [mac地址] \
- -v [主机禅道目录]:/data \
- -e MYSQL_INTERNAL=true \
- -d hub.zentao.net/app/zentao:[镜像标签]
参数说明:
zentaonet
;root
,密码是 123456
例如:在主机上创建空目录 /data/zentao
,执行如下命令
- sudo docker run \
- --name zentao \
- -p 80:80 \
- --network=zentaonet \
- --ip 172.172.172.172 \
- --mac-address 02:42:ac:11:00:00 \
- -v /data/zentao:/data \
- -e MYSQL_INTERNAL=true \
- -d hub.zentao.net/app/zentao:18.5
- sudo docker run \
- --name zentao \
- -p 80:80 \
- --network=es-net \
- --mac-address 02:42:ac:11:00:00 \
- -v /data/zentao:/data \
- -e MYSQL_INTERNAL=true \
- -d hub.zentao.net/app/zentao:18.5
注意:
- 如果需要远程连接数据库,可以增加一个端口映射
-p [主机端口]:3306
- 如果在单个主机上部署多个禅道系统,只需要指定不同的 [容器名]、[主机端口]、[容器IP]、[mac地址]、[禅道目录]即可部署多个禅道系统,例如:
- sudo docker run \
- --name zentao2 \
- -p 8080:80 \
- -p 3306:3306 \
- --network=zentaonet \
- --ip 172.172.172.173 \
- --mac-address 02:42:ac:11:00:01 \
- -e MYSQL_INTERNAL=true \
- -v /data/zentao2:/data \
- -d hub.zentao.net/app/zentao:18.5
查看容器是否启动成功
执行如下命令查看容器是否启动成功,如果没有则启动失败,去掉-d选项进行前台运行调试容器,如有任何问题请咨询禅道商务同事。
- # 查看禅道容器
- docker ps | grep zentao
- # 查看禅道容器日志
- docker logs -f zentao
后面都是无脑操作
最后 浏览器直接访问 http://宿主机ip:宿主机映射端口
推荐用按照此文档升级
https://www.zentao.net/book/zentaopms/586.html
- # 停止禅道容器
- docker stop zentao
- # 删除容器
- docker rm zentao
为安全起见,将上文所述的 [主机禅道目录] 进行备份,例如将 /data/zentao
进行拷贝至主机其他目录。
cp -rp /data/zentao /data/zentao_bak_`date +%Y%m%d`
- docker pull hub.zentao.net/app/zentao:[新版本]
- # 如
- docker pull hub.zentao.net/app/zentao:18.7
- sudo docker run \
- --name zentao \
- -p 80:80 \
- --network=zentaonet \
- --ip 172.172.172.172 \
- --mac-address 02:42:ac:11:00:00 \
- -v /data/zentao:/data \
- -e MYSQL_INTERNAL=true \
- -d hub.zentao.net/app/zentao:18.7
访问 http://你的ip:端口/ 按照提示完成升级
安装参
https://www.zentao.net/book/zentaopmshelp/405.html
- 首先要安装一个yum工具
- yum install -y yum-utils
-
- # Step 2: 添加软件源信息
- sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- # Step 3: 更新并安装 Docker-CE
- sudo yum makecache fast
- sudo yum -y install docker-ce
- # Step 4: 开启Docker服务
- sudo service docker start
-
其他具体操作参考
https://blog.csdn.net/qq_67832732/article/details/138058768