Docker安装常见应用记录

Mysql

1.容器创建

docker run -d -p 3306:3306 --restart=always --privileged=true --env=MYSQL_ROOT_PASSWORD=admin --name=mysql -v E:/ForDocker/volume/mysql/conf:/etc/mysql/conf.d -v E:/ForDocker/volume/mysql/data:/var/lib/mysql -v E:/ForDocker/volume/mysql/log:/var/log/mysql mysql:5.7 --character-set-server=utf8 --collation-server=utf8_general_ci --default-authentication-plugin=mysql_native_password

2.参数解释

--后台运行,会返回容器ID
--宿主机对外暴露端口:容器内部端口
--设置开机启动
--提升至进入容器拥有root权限
--root用户密码
--应用别名
--挂载配置目录
--挂载数据目录
--挂载日志目录
镜像名称:镜像标签
--设置字符集为utf8
--设置字符比较规则为utf8_general_ci
--设置加密规则为mysql_native_password

3.乱码问题

3.1 修改镜像源
mv /etc/apt/sources.list /etc/apt/sources.list.bak 
3.2 按照echo "xxx" >>/etc/apt/sources.list格式依次把xxx替换为下面语句执行:
deb http://mirrors.163.com/debian/ buster main non-free contrib
deb http://mirrors.163.com/debian/ buster-updates main non-free contrib
deb http://mirrors.163.com/debian/ buster-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ buster main non-free contrib
deb-src http://mirrors.163.com/debian/ buster-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ buster-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ buster/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ buster/updates main non-free contrib
3.3 更新安装源 apt-get update

image-20200824170711400

image-20200824170816468

3.4 安装vim,然后编辑mysql配置文件
3.5 也可以不安装vim把容器配置文件复制出来,改好再复制回去,然后重启容器
vim /etc/mysql/mysql.conf.d/mysqld.cnf

image-20200824171039477

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8
3.6 推荐Dockefile快速构建
FROM mysql:5.7
MAINTAINER wuhui
#字符集
RUN echo "character-set-server=utf8" >> /etc/mysql/mysql.conf.d/mysqld.cnf 
&& echo "collation-server=utf8_general_ci" >> /etc/mysql/mysql.conf.d/mysqld.cnf 
#时区
&& echo "default-time-zone"='+8:00' 
&& echo "[client]" >> /etc/mysql/mysql.conf.d/mysqld.cnf 
&& echo "default-character-set=utf8" >> /etc/mysql/mysql.conf.d/mysqld.cnf 
&& echo "[mysql]" >> /etc/mysql/mysql.conf.d/mysqld.cnf 
&& echo "default-character-set=utf8" >> /etc/mysql/mysql.conf.d/mysqld.cnf 
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
#时区
&& echo 'Asia/Shanghai' >/etc/timezone 
#解决5.7.5及以上默认启用了ONLY_FULL_GROUP_BY模式,造成group by的问题
#1055 - Expression of SELECT list is not in GROUP BY clause and contains nonaggregated column this i
&& echo "[mysqld]" >> /etc/mysql/mysql.conf.d/mysqld.cnf 
&& echo "sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" >> /etc/mysql/mysql.conf.d/mysqld.cnf 
 
ENTRYPOINT ["/bin/bash"]

Redis

1. 下载配置文件,稍作修改
http://download.redis.io/redis-stable/redis.conf
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问

protected-mode no #默认yes,开启保护模式,限制为本地访问

databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。。

dir  ./ #输入本地redis数据库存放文件夹(可选)

appendonly yes #redis持久化(可选)
2.生成容器
docker run --privileged=true -p 6379:6379 -v E:/ForDocker/volume/redis/data:/data -v E:/ForDocker/volume/redis/redis.conf:/etc/redis/redis.conf  --name redis --restart=always -d redis redis-server /etc/redis/redis.conf --appendonly yes
3.进入redis
docker exec -ti redis redis-cli -h localhost -p 6379 或者 rdm客户端直接连

RabitMQ

1.建立好宿主机文件待挂载目录
2.创建容器
docker run -d -p 15672:15672 -p 5672:5672 --name rabbitmq --privileged=true  -v D:ForDockervolume
abbitmqconf:/etc/rabbitmq -v D:ForDockervolume
abbitmqdata:/var/lib/rabbitmq/mnesia -v D:ForDockervolume
abbitmqlog:/var/log/rabbitmq rabbitmq
3.进入容器开启管理功能

image-20200824172315329

原文地址:https://www.cnblogs.com/NoRegrets/p/13556226.html