镜像搜索地址: https://hub.docker.com/
docker pull 软件名:版本号
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
超级管理员权限
docker pull mysql:5.7
//查看已经安装的软件
docker images
//启动MySQL 第一行虚拟机的3307端口映射到容器的3306端口 -e是设置MySQL root账号的密码是roout -d是指定启动的数据库版本 -v是挂载的意思,容器中这个目录/var/log/mysql 里面的文件都同步映射到虚拟机的/mydata/mysql/log这个目录里面,当该虚拟机这个目录的文件,容器里面的文件也一起变动 --name表示容器的名字
docker run -p 3307:3306
--name mysql
-v /mydata/mysql/log:/var/log/mysql
-v /mydata/mysql/data:/var/lib/mysql
-v /mydata/mysql/conf:/etc/mysql
-e MYSQL_ROOT_PASSWORD=root
-d mysql:5.7
//经过上面的命令一个启动成功了,可通过Navicat进行连接这个容器的MySQL - 如下图
//进入容器内部
//查看正在进行的容器
docker ps
//进入容器 == 其实就是进了个小的Linux系统
docker exec -it mysql /bin/bash
//查找有关MsyqL的目录
whereis mysql
//退出容器,其实就是linux系统用户退出
exit
//修改MysqL的配置文件 - 进入虚拟机的/mydata/mysql/conf,创建my.cnf文件,将下列内容放进去并保存
[mysqld]
init_connect='SET collation_connection=utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
//查看容器并重启
docker ps
docker restart mysql
//进入查看容器中的/etc/mysql目录是否有虚拟机中/mydata/mysql/conf目录中my.cnf
docker exec -it mysql /bin/bash
//可见文件时一摸一样的
cd /etc/mysql
ls
cat my.cnf
docker pull mysql
docker images
// mysql8 特别注意主机中的/www/server/mysql/data /www/server/mysql/log目录不要创建,只要创建父目录即可,否则启动不起来(真实可用),容器自动会在本地创建data、log目录 === 提前设置后主机的my.cnf文件
docker run -p 3306:3306 -v /www/server/mysql/data:/var/lib/mysql -v /www/server/mysql/log:/var/log/mysql -v /www/server/mysql/my.cnf:/etc/mysql/conf.d/my.cnf --name mysql_latest -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
//查看是否启动mysql成功
docker ps
//如果上述没找到正在运行的mysql,则查看启动日志,看报什么错误
docker logs -f -t --tail 20 mysql_latest
//可使用RDM连接redis或者直接使用下面的docker命令进行redis客户端
docker exec -it mysql bash
/www/server/mysql/my.cnf
[mysql]
#设置mysql客户端默认字符集
default-character-set=UTF8MB4
[mysqld]
#设置3306端口
port=3306
#允许最大连接数
max_connections=200
#允许连接失败的次数
max_connect_errors=10
#默认使用“mysql_native_password”插件认证
#default_authentication_plugin=mysql_native_password
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=UTF8MB4
#开启查询缓存
explicit_defaults_for_timestamp=true
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#等待超时时间秒
wait_timeout=60
#交互式连接超时时间秒
interactive-timeout=600
//下载镜像
docker pull mysql
//查看镜像
docker images
//启动镜像 == mysql映射到本机3307
docker run -p 3307:3306 -v /www/server/mysql/data:/var/lib/mysql -v /www/server/mysql/conf.d:/etc/mysql/conf.d/ --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
//启动镜像 == mysql映射到本机3306 == 建议
docker run -p 3306:3306 -v /www/server/mysql/data:/var/lib/mysql -v /www/server/mysql/conf.d:/etc/mysql/conf.d/ --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
本机/www/server/mysql/conf.d/mysql.cnf
[mysql]
#设置mysql客户端默认字符集
default-character-set=UTF8MB4
[mysqld]
#设置3306端口
port=3306
#允许最大连接数
max_connections=200
#允许连接失败的次数
max_connect_errors=10
#默认使用“mysql_native_password”插件认证
#default_authentication_plugin=mysql_native_password
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=UTF8MB4
#开启查询缓存
explicit_defaults_for_timestamp=true
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#等待超时时间秒
wait_timeout=60
#交互式连接超时时间秒
interactive-timeout=600
//最新版Redis
sudo docker pull redis
//创建redis.conf目录以及其对应的父目录
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
//启动Redis 第一行虚拟机的3307端口映射到容器的3306端口 -e是设置MySQL root账号的密码是roout -d是指定启动的数据库版本 -v是挂载的意思,容器中这个目录/var/log/mysql 里面的文件都同步映射到虚拟机的/mydata/mysql/log这个目录里面,当该虚拟机这个目录的文件,容器里面的文件也一起变动 --name表示容器的名字
docker run -p 6379:6379
--name redis
-v /mydata/redis/data:/data
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf
-d redis redis-server /etc/redis/redis.conf
// docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
//进入Redis客户端
docker exec -it redis redis-cli
//当重启Redis会导致直接设置的数据丢失,故需要设置持久化设置, 在/mydata/redis/conf/redis.conf文件中添加下列配置
appendonly yes
//然后重启redis容器即可
docker restart redis
docker pull redis
//先在宿主机创建文件/www/server/redis/redis.conf,文件在下面直接复制粘贴即可
//宿主机:只需创建/www/server/redis目录以及redis.conf文件即可,data目录无需创建
docker run -di -v /www/server/redis/redis.conf:/etc/redis/redis.conf -v /www/server/redis/data:/data -p 6379:6379 --name redis redis:latest redis-server /etc/redis/redis.conf
docker ps
redis.conf文件修改如下
//关闭守护进程启动
//daemonize no
//任何网络IP都可访问redis
//bind 0.0.0.0
//持久化
//appendonly yes
//使用redis需要密码
//requirepass ctbb123
//获取nginx镜像
docker pull nginx
//查看nginx镜像
docker images
//将nginx部署作为镜像 == 先这样启动,然后进去nginx容器查看配置文件目录这些在哪里
docker run -d --name nginx -p 80:80 nginx:latest
//进去容器内部 == 配置文件目录在
//配置文件,进程ID(容器目录):/etc/nginx
//日志文件(容器目录):/var/log/nginx
//自行根据配置文件进行目录、文件拷贝到宿主机
docker exec -it nginx /bin/bash
//知道需要拷贝的容器、文件路径之后退出容器
exit
//注意:宿主机的nginx的目录不用创建、不用创建、不用创建,重要的事情说三遍,只要创建父目录即可即/etc/server
docker cp 容器ID:/etc/nginx /etc/server/nginx
docker cp 容器ID:/usr/share/nginx/html /etc/server/nginx/html
//停止、并删除原先容器(配置文件没挂载到宿主机)
docker stop nginx容器ID
docker rm nginx容器ID
//启动新容器(配置文件挂载到宿主机目录)
docker run -d -v /www/server/nginx/log:/var/log/nginx -v /www/server/nginx/nginx.pid:/var/run/nginx.pid -v /www/server/nginx/nginx.conf:/etc/nginx/nginx.conf -v /www/server/nginx/conf.d:/etc/nginx/conf.d -v /www/server/nginx/html:/usr/share/nginx/html --name nginx -p 80:80 nginx:latest
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_39651356/article/details/125710778
内容来源于网络,如有侵权,请联系作者删除!