Docker安装mysql、redis、rabbitmq

【docker 安装mysql】

docker pull mysql:latest
docker images

docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

#-p 3306:3306:指定宿主机端口与容器端口映射关系
#--name mysql:创建的容器名称
#--restart=always:总是跟随docker启动
#--privileged=true:获取宿主机root权限
#-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器
#-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器
#-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器
#-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。
#-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456
#-d mysql:latest:后台运行mysql容器,版本是latest。

#如果启动失败,查看日志
docker logs -f mysql

#报错信息为:mysqld: Can't read dir of '/etc/mysql/conf.d/' (OS errno 2 - No such file or directory)
#解决方案为
cd /usr/local/mysql/conf
mkdir conf.d
mkdir mysql.conf.d
#然后删除容器重新创建即可。

docker exec -it your-mysql-container mysql -u root -p 可进入mysql

【docker安装redis】 

docker run -p 6379:6379 --name redis --restart=always --privileged=true \
-v /usr/local/redis/conf:/etc/redis \
-v /usr/local/redis/data:/data \
-v /usr/local/redis/redis.log:/var/log/redis.log \
-d redis:latest \
redis-server /etc/redis/redis.conf \
--appendonly yes --requirepass "123456"  

#如果启动失败,查看日志
docker logs -f redis

#指定redis-server /etc/redis/redis.conf的目的是让redis带配置文件启动,如果没有配置文件会报错
#添加配置文件,vim /usr/local/redis/conf/redis.conf,添加行信息:
bind 0.0.0.0

#为redis设置登录密码,如果在云上建议开启
requirepass 123456

#开启持久化
appendonly yes

docker exec -it your-redis-container redis-cli  可进入redis命令行界面

【docker安装rabbitmq】

docker run -p 5672:5672 -p 15672:15672 --name rabbitmq  --cpus 1 --memory 512M --restart=always --privileged=true -d rabbitmq:latest

# 如果成功运行了RabbitMQ,但是无法通过http://IP:15672/访问后台管理界面,这是因为默认情况下他是没有启用管理插件和管理页面的
# 进入容器
docker exec -it 容器名 /bin/bash

# 启用RabbitMQ的管理插件
rabbitmq-plugins enable rabbitmq_management

【常用命令】

# 进入容器
docker exec -it b41069c782e8   /bin/bash
docker run -it nginx /bin/bash  进入容器

# 查看docker状态
docker stats

# 查看日志
docker logs b41069c782e8

# 指定cpus和memory参数
docker run -p 5672:5672 -p 15672:15672 --name rabbitmq  --cpus 1 --memory 512M --restart=always --privileged=true -d rabbitmq:latest

# 从容器内拷贝文件
docker run -p 3306:3306 --name  sample-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.40
sudo docker cp sample-mysql:/etc/mysql/. /usr/local/mysql82/conf

# 参数配置
--cpus 1
--memory 2G
--ulimit nofile=1024
# 共享网络空间(注意端口冲突的问题),解决docker内部localhost 127.0.0.1等问题。
--network host 
# 构建镜像
docker build -f Dockerfile -t <**> .

# 登录远程仓库
docker login -u <*> -p <*> <***>

# 关联 本地->远程
docker tag <*>:latest <***>:latest

# 推送 本地->远程
docker push <***>:<**version>

你可能感兴趣的:(docker,mysql,redis)