20221205 常用Docker部署
MySQL
-
准备
my.cnf
配置文件[mysqld] character_set_server=utf8 [client] default-character-set=utf8
-
上传
my.cnf
到宿主机/data/docker/mysql/conf
-
修改 my.cnf 文件权限
chmod 644 /data/docker/mysql/conf/my.cnf
-
运行 docker run 命令部署容器
docker run -itd --name mysql-dev --restart always --privileged=true -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=Abc_13579 \ -v /data/docker/mysql/data:/var/lib/mysql \ -v /data/docker/mysql/conf:/etc/mysql/conf.d \ mysql:8.0 --character-set-server=utf8 --collation-server=utf8_general_ci
-
验证
-
进入容器,查询编码
# 进入容器 docker exec -it mysql-dev bash # 登录MySQL mysql -uroot -p # 查询编码,如果是utf8,证明配置成功应用 show variables like 'character_%';
-
实现效果
-
配置文件和数据文件挂载在宿主机目录
/data/docker/mysql
-
MySQL 编码格式修改为 utf8
Redis
Redis 官网配置文件:Redis configuration | Redis
-
准备
redis.conf
,修改默认文件内容#bind 127.0.0.1 -::1 # 注释掉这行 protected-mode no # yes 改为 no requirepass Abc_13579 # 设置密码 appendonly yes # 启用aof dir /data # 设置aof文件路径
-
将配置文件 redis.conf 复制到
/data/docker/redis/conf/redis.conf
-
准备数据目录
/data/docker/redis/data
mkdir -p /data/docker/redis/data chmod 777 /data/docker/redis/data
-
运行 docker run 命令部署容器
docker run -itd --name redis-dev --restart=always --privileged=true -p 6379:6379 \ -v /data/docker/redis/data:/usr/local/redis/data/ \ -v /data/docker/redis/conf/redis.conf:/usr/local/redis/conf/redis.conf \ redis:6.2-alpine redis-server /usr/local/redis/conf/redis.conf
实现效果
-
配置文件和备份文件挂载在宿主机
/data/docker/redis
-
启用 aof 备份方式
-
备份文件 dump.rdb 和 appendonly.aof 都会在宿主机目录
/data/docker/redis/data
ZooKeeper
docker run -d --name zookeeper -p 2181:2181 -v /usr/local/zookeeper/data:/data -v /usr/local/zookeeper/log:/datalog zookeeper
Kafka
docker run -d --name kafka --publish 9092:9092 \
--link zookeeper \
--env KAFKA_ZOOKEEPER_CONNECT=1.1.1.1:2181 \
--env KAFKA_ADVERTISED_HOST_NAME=1.1.1.1 \
--env KAFKA_ADVERTISED_PORT=9092 \
--env KAFKA_LOG_DIRS=/kafka/kafka-logs-1 \
-v /usr/local/kafka/logs:/kafka/kafka-logs-1 \
wurstmeister/kafka