运行容器时需要挂载配置文件和数据目录,避免重启容器后,容器内的数据没了
前置准备
① 创建网络
# 创建网络,方便容器内可以通过容器名+容器端口相互访问
docker network create dev
MySQL安装与卸载
① 创建挂载目录和配置文件
# 创建MySQL配置文件
mkdir -p /apps/mysql/config
mkdir -p /apps/mysql/data
tee /apps/mysql/config/my.cnf <<-'EOF'
# 设置MySQL服务器的参数
[mysqld]
# 设置MySQL服务器的字符集和时区等参数
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
default-time-zone='+08:00'
# 最大连接数和缓冲池大小等参数
max_connections=1000
key_buffer_size=512M
query_cache_size=64M
# 设置MySQL服务器的默认编码
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 指定MySQL服务器的端口
port=3306
# 忽略MySQL表名大小写
lower_case_table_names=1
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
EOF
② 创建容器
容器内部路径说明:
日志路径
:-配置文件路径
:/etc/mysql/my.cnf数据存放路径
:/var/lib/mysql
docker run --name mysql -p 32487:3306 --net dev \
-v /apps/mysql/config/my.cnf:/etc/mysql/my.cnf \
-v /apps/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=!QAZ2wsx \
--cpus 1 -m 768m -d mysql:5.7.30
③ 连接测试
# 连接mysql容器内的mysql实例
docker exec -it mysql mysql -u root -p
④ 卸载
# 停止容器并删除容器
docker stop mysql && docker rm mysql
# 删除镜像
docker rmi mysql:5.7.30
# 删除数据目录
rm -rf /apps/mysql
Redis安装与卸载
① 创建挂载目录和配置文件
# 创建目录及配置文件
mkdir -p /apps/redis/config
mkdir -p /apps/redis/logs
mkdir -p /apps/redis/data
tee /apps/redis/config/redis.conf <<-'EOF'
port 6379
logfile /var/log/redis/redis.log
dir /data
requirepass "!QAZ2wsx"
EOF
② 创建容器
容器内部路径说明:
日志存放路径
:/var/log/redis配置文件路径
:/usr/local/etc/redis/redis.conf数据存放路径
:/data
docker run --name=redis -p 30253:6379 --net dev \
-v /apps/redis/data:/data \
-v /apps/redis/config/redis.conf:/usr/local/etc/redis/redis.conf \
-v /apps/redis/logs:/var/log/redis \
--cpus 1 -m 512m -d redis:5.0.9 redis-server /usr/local/etc/redis/redis.conf --appendonly yes
③ 连接测试
# 连接redis实例
docker exec -it redis redis-cli -a !QAZ2wsx
④ 卸载
# 停止容器并删除容器
docker stop redis && docker rm redis
# 删除镜像
docker rmi redis:5.0.9
# 删除数据目录
rm -rf /apps/redis
Elasticsearch安装与卸载
① 创建挂载目录和配置文件
mkdir -p /apps/elk/elasticsearch/config
mkdir -p /apps/elk/elasticsearch/logs
mkdir -p /apps/elk/elasticsearch/data
tee /apps/elk/elasticsearch/config/elasticsearch.yml <<-'EOF'
# ----------------------------------- Paths ------------------------------------
# 数据存储目录
path.data: /usr/share/elasticsearch/data/
# 日志存储目录
path.logs: /usr/share/elasticsearch/logs/
# ---------------------------------- Network -----------------------------------
# 设置外网访问
network.host: 0.0.0.0
# 端口
http.port: 9200
# 是否支持跨域,默认为false
http.cors.enabled: true
# 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。
http.cors.allow-origin: "*"
EOF
② 创建容器
容器内部路径说明:
日志存放路径
:/usr/share/elasticsearch/logs配置文件路径
:/usr/share/elasticsearch/config/elasticsearch.yml数据存放路径
:/usr/share/elasticsearch/data
docker run --name elasticsearch -p 30175:9200 -p 30275:9300 --net dev \
-v /apps/elk/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /apps/elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /apps/elk/elasticsearch/data:/usr/share/elasticsearch/data \
-e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx1024m" \
--cpus 1 -m 1024m -d elasticsearch:7.17.24
③ 访问测试
http://<你的ip>:30175
④ 卸载
# 停止容器并删除容器
docker stop elasticsearch && docker rm elasticsearch
# 删除镜像
docker rmi elasticsearch:7.17.24
# 删除数据目录
rm -rf /apps/elk/elasticsearch
MongoDB安装与卸载
① 创建挂载目录和配置文件
mkdir -p /apps/mongodb/config
mkdir -p /apps/mongodb/logs
mkdir -p /apps/mongodb/data
tee /apps/mongodb/config/mongod.conf <<-'EOF'
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
storage:
dbPath: /data/db
net:
bindIp: 0.0.0.0
port: 27017
security:
authorization: enabled
EOF
② 创建容器
容器内部路径说明:
日志存放路径
:/var/log/mongodb配置文件路径
:/etc/mongod.conf数据存放路径
:/data/db
docker run --name mongodb -p 32673:27017 --net dev \
-v /apps/mongodb/data:/data/db \
-v /apps/mongodb/logs:/var/log/mongodb \
-v /apps/mongodb/config/mongod.conf:/etc/mongod.conf \
-e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=!QAZ2wsx \
--cpus 1 -m 512m -itd mongo
③ 连接测试
账号/密码:root/!QAZ2wsx
docker exec -it mongodb mongosh --host localhost:27017 -u root -p '!QAZ2wsx'
④ 卸载
# 停止容器并删除容器
docker stop mongodb && docker rm mongodb
# 删除镜像
docker rmi mongo:latest
# 删除数据目录
rm -rf /apps/mongodb
SQLServer安装与卸载
① 创建挂载目录和配置文件
mkdir -p /apps/sqlserver/config
mkdir -p /apps/sqlserver/logs
mkdir -p /apps/sqlserver/data
② 创建容器
容器内部路径说明:
日志路径
:/var/opt/mssql/log配置文件路径
:-数据路径
:/var/opt/mssql/data
docker run --name sqlserver -p 30388:1433 --net dev \
-v /apps/sqlserver/data:/var/opt/mssql/data \
-v /apps/sqlserver/logs:/var/opt/mssql/log \
-e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=!QAZ2wsx" \
--cpus 1 -m 1536m -d mcr.microsoft.com/mssql/server:2019-latest
③ 连接测试
账号/密码:sa/!QAZ2wsx
docker exec -it sqlserver /opt/mssql-tools18/bin/sqlcmd -U SA -No
④ 卸载
# 停止容器并删除容器
docker stop sqlserver && docker rm sqlserver
# 删除镜像
docker rmi mcr.microsoft.com/mssql/server:2019-latest
# 删除数据目录
rm -rf /apps/sqlserver
PostgreSQL安装与卸载
① 创建挂载目录和配置文件
mkdir -p /apps/postgresql/config
mkdir -p /apps/postgresql/logs
mkdir -p /apps/postgresql/data
② 创建容器
容器内部路径说明:
日志路径
:/var/log/postgresql配置文件路径
:/var/lib/postgresql/data/postgresql.conf数据路径
:/var/lib/postgresql/data
docker run --name postgresql -p 32101:5432 --net dev \
-v /apps/postgresql/logs:/var/log/postgresql \
-v /apps/postgresql/data:/var/lib/postgresql/data \
-e POSTGRES_USER=root -e POSTGRES_PASSWORD=!QAZ2wsx -e POSTGRES_DB=demo \
--cpus 1 -m 512m -d postgres:alpine3.19
③ 连接测试
账号/密码:root/!QAZ2wsx
docker exec -it postgresql psql -U root -d demo
④ 卸载
# 停止容器并删除容器
docker stop postgresql && docker rm postgresql
# 删除镜像
docker rmi postgres:alpine3.19
# 删除数据目录
rm -rf /apps/postgresql
Oracle安装与卸载
① 创建挂载目录
mkdir -p /apps/oracle/data
② 创建容器
容器内部路径说明:
日志路径
:-配置文件路径
:-数据存放路径
:/opt/oracle/oradata
# 拉取镜像,镜像有点大
docker pull container-registry.oracle.com/database/free:latest
# 运行容器
docker run --name oracle -p 30334:1521 -p 35500:5500 \
-e ORACLE_PWD=oracle --net=dev \
-v /apps/oracle/data:/opt/oracle/oradata \
-d --cpus 1 -m 2560m container-registry.oracle.com/database/free:latest
运行之后查看容器日志等待出现如下信息即可
③ 连接测试
账号/密码:system/oracle
docker exec -it oracle sqlplus system/oracle@FREE
④ 卸载
# 停止容器并删除容器
docker stop oracle && docker rm oracle
# 删除镜像
docker rmi container-registry.oracle.com/database/free:latest
# 删除数据目录
rm -rf /apps/oracle
达梦数据库安装与卸载
① 创建挂载目录
mkdir -p /apps/dm/data
② 创建容器
日志路径
:/opt/dmdbms/log配置文件路径
:/opt/dmdbms/data/DAMENG/dm.ini数据路径
:/opt/dmdbms/data
# 下载镜像文件
wget https://download.dameng.com/eco/dm8/dm8_20240715_x86_rh6_rq_single.tar
# 导入镜像文件
docker load -i dm8_20240715_x86_rh6_rq_single.tar
# 启动容器
docker run --name dm8 -p 31344:5236 --restart=always --net dev --privileged=true \
-e LD_LIBRARY_PATH=/opt/dmdbms/bin -e PAGE_SIZE=16 -e EXTENT_SIZE=32 \
-e LOG_SIZE=1024 -e UNICODE_FLAG=1 -e INSTANCE_NAME=dm8_test \
-v /apps/dm/data:/opt/dmdbms/data \
-v /apps/dm/log:/opt/dmdbms/log \
--cpus 1 -m 1024m -d dm8_single:dm8_20240715_rev232765_x86_rh6_64
③ 连接测试
账号/密码:SYSDBA/SYSDBA001
docker exec -it dm8 /opt/dmdbms/bin/disql
④ 卸载
# 停止容器并删除容器
docker stop dm8 && docker rm dm8
# 删除镜像
docker rmi dm8_single:dm8_20240715_rev232765_x86_rh6_64
# 删除数据目录
rm -rf /apps/dm