docker的安装可以去看我的另一篇博客docker博客链接
安装mysql
确定版本拉取镜像
docker pull mysql:5.7.36
启动mysql服务
启动mysql服务,后台运行,指定root用户密码,指定容器名字
docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql:5.7.36
- –name 容器名
- -e MYSQL_ROOT_PASSWORD=xxx 给root用户指定密码
- -d 后台运行
- -p 宿主机端口:容器端口
上面run命令没有使用数据卷,将数据持久化到宿主机系统
启动mysql+数据卷持久化
启动mysql服务,后台运行,指定root用户密码,指定容器名字,使用数据卷将数据持久化到宿主机系统
注意:通过dockerhub描述得知mysql存储文件目录放在容器中这个目录/var/lib/mysql
docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 -v mysqldata:/var/lib/mysql mysql:5.7.36
修改mysql配置
如果想根据自己的需要修改mysql配置文件,可以将对应的目录也一起挂载出去
docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 -v mysqldata:/var/lib/mysql -v mysqlconfig:/etc/mysql/conf.d -v mysqllog:/var/log/mysql mysql:5.7.36
docker exec -it 容器id bash
mysql -u root -p123456
SHOW VARIABLES LIKE 'character%';
字符集不正确插入中文会有问题
通过数据卷修改数据库配置
cd /var/lib/docker/volumes/mysqlconfig/_data
vim my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[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
注意一定要重启容器
安装tomcat
拉取镜像
docker pull tomcat:9.0-jdk8-corretto
启动一个基本tomcat服务
docker run -d -p 8080:8080 --name tomcat tomcat:9.0-jdk8-corretto
- –name 容器名
- -d 后台运行
- -p 宿主机端口:容器端口
通过ip地址访问发现
发现webapps目录里面是空的
修改完后再次访问即可出现tomcat页面
或者也可以直接拉取老板的镜像
拉取镜像
docker pull tomcat:8.0.52-jre8
运行
docker run -d -p 8080:8080 --name tomcat tomcat:8.0.52-jre8
通过数据卷自动挂载
注意 部署web应用在容器中的目录为/usr/local/tomcat/webapps 配置文件在/usr/local/tomcat/conf
docker run -d -p 8080:8080 --name tomcat -v apps:/usr/local/tomcat/webapps tomcat:8.0.52-jre8
在数据卷对应的目录创建文件夹,编写index.html,访问ip::8080/emp/index.html
挂载配置文件目录
docker run -d -p 8080:8080 --name tomcat -v apps:/usr/local/tomcat/webapps -v confs:/usr/local/tomcat/conf tomcat:8.0.52-jre8
如果配置信息没有立即生效(例如端口),可能要以该数据卷新起一个容器才会生效
手动挂载tomcat9运行
# -v表示挂载,前面的目录为宿主机目录结构,后面的目录为容器中的目录结构
docker run --name tomcat -p 8080:8080
-v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps
-v /usr/local/tomcat/conf:/usr/local/tomcat/conf -d tomcat:9.0-jdk8-corretto
这里我们通过再启动一个tomcat容器,然后从容器中拷贝一个server.xml文件放到挂载conf文件夹中
docker run --name tomcat1 -p 8080:8080 -d tomcat:9.0-jdk8-corretto
docker exec -it ad37af bash
拷贝命令
docker cp tomcat1:/usr/local/tomcat/conf/ /usr/local/tomcat/
重启tomcat
docker start tomcat
因为9版本的tomcatwebapps里面是空的所以需要复制webapps.dist才能访问
cd webapps.dist/
cp -r ./* ../webapps
即可访问成功
安装redis
拉取镜像
docker pull redis:6.2.5
自动挂载运行容器
docker run -p 6379:6379 --name redis --privileged=true -v redisconfig:/etc/redis -v redisdata:/data -d redis:6.2.5 redis-server /etc/redis/redis.conf
复制配置文件
cp ./redis.conf /var/lib/docker/volumes/redisconfig/_data
切记:
不要配置daemonize yes,否则无法启动容器:启动后立即停止
手动挂载安装步骤
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
在刚才新建的redis/conf中新建文件redis.conf,内容如下:
#bind 127.0.0.1 //允许远程连接
protected-mode no
appendonly yes //持久化
requirepass 123456 //密码
启动
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