Linux常用环境Docker安装

3 篇文章 0 订阅

一、mysql安装

简单安装

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  mysql

 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

二、安装elasticsearch

1、直接安装

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

2、分步安装(如果下载不了)

2.1 创建网络(单点部署)

因为我们还需要部署 kibana 容器,因此需要让 es 和 kibana 容器互联,所有先创建一个网络:

docker network create es-net

2.2加载镜像

采用的版本为 7.12.1 的 elasticsearch;自己 pull 是非常大的有 1G 左右 

百度网盘

链接: https://pan.baidu.com/s/1Xa2nhYn3yX4i1e9Rt8mE_w

提取码: ri83 

docker load -i es.tar

2.3 运行
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 端口

 

 三、安装Kibana

1、直接安装

docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=hm-net \
-p 5601:5601  \
kibana:7.12.1

 2、分布安装(网络下载不了就用)

2.1下载

链接: https://pan.baidu.com/s/1K1Eu50epB7FsXo_unHwwCA 提取码: jwqq 


2.2解压
docker load -i kibana.tar

 

 2.3运行 docker 命令,部署 kibana
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 端口 

3.安装 IK 分词器

3.1.在线安装 ik 插件(方法一)
# 进入容器内部
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

 3.2.离线安装 ik 插件(方法二)
3.2.1.查询数据卷目录
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"
    }
]
 3.2.2百度网盘下载

 链接: https://pan.baidu.com/s/18e5I1V8uibD5NTxFJI7IFg 提取码: 2bk7 

cd /var/lib/docker/volumes/es-plugins/_data
3.2.3解压分词器安装包

3.2.4. 重启容器
docker restart es

查看启动日志

docker logs -f es

测试

IK分词器包含两种模式:

  • ik_smart:最少切分
  • ik_max_word:最细切分

4. 扩展词词典

在IKAnalyzer.cfg.xml配置文件内容添加:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
        <comment>IK Analyzer 扩展配置</comment>
        <!--用户可以在这里配置自己的扩展字典 *** 添加扩展词典-->
        <entry key="ext_dict">ext.dic</entry>
</properties>
新建一个 ext.dic,可以参考config目录下复制一个配置文件进行修改
重启elasticsearch

docker restart es
 
# 查看 日志
docker logs -f elasticsearch

日志中已经成功加载ext.dic配置文件

5)测试效果:

注意当前文件的编码必须是 UTF-8 格式,严禁使用Windows记事本编辑

5. 停用词词典


在互联网项目中,在网络间传输的速度很快,所以很多语言是不允许在网络上传递的,如:关于宗教、政治等敏感词语,那么我们在搜索时也应该忽略当前词汇。

IK分词器也提供了强大的停用词功能,让我们在索引时就直接忽略当前的停用词汇表中的内容。

IKAnalyzer.cfg.xml配置文件内容添加:
在 stopword.dic 添加停用词
重启elasticsearch

# 重启服务
docker restart elasticsearch
docker restart kibana
 
# 查看 日志
docker logs -f elasticsearch

日志中已经成功加载stopword.dic配置文件

测试效果:

注意当前文件的编码必须是 UTF-8 格式,严禁使用Windows记事本编辑

6.部署es集群

部署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

 具体操作参考:Elasticsearch-CSDN博客文章浏览阅读879次,点赞15次,收藏21次。ES是⼀个使⽤Java语⾔并且基于Lucene编写的搜索引擎框架,他提供了分布式的全⽂搜索功能,提供了⼀个统⼀的基于RESTful⻛格的WEB接⼝,官⽅客户端也对多种语⾔都提供了相应的API。LuceneLucene本身就是⼀个搜索引擎的底层。分布式:ES主要是为了突出他的横向扩展能⼒。全⽂检索:将⼀段词语进⾏分词,并且将分出的单个词语统⼀的放到⼀个分词库中,在搜索时,根据关键字去分词库中检索,找到匹配的内容。(倒排索引)RESTful⻛格的WEB。https://blog.csdn.net/qq_67832732/article/details/139054444

四、安装MongoDB

1.docker 拉取mysql镜像

docker pull mongo:latest

2.运行容器

创建外部挂载的文件并进行授权

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

五、安装redis

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

5.2.1 redis镜像拉取 

查看可用的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/

3.3 启动redis容器

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

3.4 验证Redis容器是否正常运行

  1. 查看容器的运行信息,验证Redis容器是否正常运行:docker ps
  2. 查看指定容器状态:docker ps -a | grep myredis
  3. 查看容器运行日志:docker logs --since 30m <容器名>此处 --since 30m 为查看此容器30分钟之内的日志情况
  4. 容器内部连接测试:docker exec -it <容器名> /bin/bash
  5. 查看所有在运行的容器:docker ps -a

  6. 关闭容器:docker stop <容器名>
    删除容器:docker rm <容器名>
    查看全部镜像 命令:docker images
    删除镜像 命令 :docker rmi <容器 id>

六、安装nginx

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 目录到宿主机;冒号前为宿主机文件路径,冒号后为挂载到容器中的路径。可以看到宿主机被挂载的三个目录/文件是第一次运行时从容器内拷贝出来的,

七、安装nacos

docker pull nacos/nacos-server:v2.1.0-slim
2.2.1.创建日志文件夹、配置文件
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

八、安装rabbitmq

链接: 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

 

创建docker网络驱动

sudo docker network create --subnet=[ip范围] [网络驱动名] 
  • ip范围:例如172.172.172.0/24的意思是,IP可以指定范围为172.172.172.1到172.172.172.254;
  • 网络驱动名:创建的网络驱动名,可随意指定;

例如

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:[镜像标签] 

参数说明:

  • 容器名:启动的容器名字,可随意指定;
  • 主机端口:主机端口为web访问端口;
  • 网络驱动名:上文创建的网络驱动名 zentaonet
  • 容器IP:在网络驱动范围内选择一个作为该容器的固定ip;
  • mac地址:指定固定的mac地址,建议范围为02:42:ac:11:00:00 到 02:42:ac:11:ff:ff;
  • 主机禅道目录:必须指定,方便附件等数据的持久化;
  • MYSQL_INTERNAL=true:启用容器内置MySQL,默认用户名为 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
1 先停止禅道容器,为备份数据做准备
# 停止禅道容器
docker stop zentao 
# 删除容器
docker rm zentao 
2 备份禅道数据

为安全起见,将上文所述的 [主机禅道目录] 进行备份,例如将 /data/zentao 进行拷贝至主机其他目录。

cp -rp /data/zentao /data/zentao_bak_`date +%Y%m%d` 
3 拉取新版本禅道镜像
docker pull hub.zentao.net/app/zentao:[新版本]
# 如
docker pull hub.zentao.net/app/zentao:18.7 
4 启禅道容器
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

十、docker安装

首先要安装一个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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值