【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>