1、Docker部署MySQL
案例:在Docker容器中部署MySQL数据库,并通过外部MySQL客户端管理MySQL数据库。
步骤:
下载MySQL5.7镜像文件
准备所需的数据卷目录
拷贝容器中数据到宿主机数据卷目录
创建MySQL并挂载数据卷
下载MySQL镜像文件
docker pull mysql:5.7创建数据卷目录
mkdir -p /docker_mysql/创建容器拷贝配置文件目录到/docker_mysql目录
格式1:docker cp 容器名:目录/文件 宿主机目录 #将容器中文件或目录拷贝到宿主机
格式2:docker cp 宿主机目录/文件 容器名:目录 #将宿主机文件/目录拷贝到容器中
docker run -id --name=mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
docker cp mysql:/etc/mysql/ /docker_mysql
#由于MySQL主配置文件是软连接,拷贝出来链接文件会失效,再次拷贝源文件
docker cp mysql:/etc/alternatives/my.cnf /docker_mysql/mysql/
#删除掉链接文件
rm -rf /docker_mysql/mysql/my.cnf
#修改配置文件的名称
mv /docker_mysql/mysql/my.cnf.fallback /docker_mysql/mysql/my.cnf删除MySQL容器
docker rm -f mysql创建MySQL容器并挂载数据卷
docker run -id --name=lnmp_mysql -p 3306:3306 \
-v /docker_mysql/mysql/:/etc/mysql \
-v /docker_mysql/data/mysql:/var/lib/mysql \
-v /docker_mysql/logs:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7进入数据库授权远程连接用户访问
docker exec -it lnmp_mysql /bin/bash
root@9c8c0dccccee:/# mysql -uroot -p123456
mysql> grant all on *.* to root@"%" identified by "123456";2、Docker部署Nginx
案例:在Docker容器中部署Nginx的web服务,并通过外部浏览器访问Nginx。
下载Nginx镜像
docker pull nginx:1.22.0创建数据卷目录
mkdir -p /docker_nginx/conf创建容器拷贝配置文件目录到/docker_nginx目录
docker run -id --name=nginx -p 80:80 nginx:1.20.2
docker cp nginx:/etc/nginx /docker_nginx/conf删除nginx容器
docker rm -f nginx创建nginx容器并挂载数据卷
docker run -id --name=lnmp_nginx -p 80:80 \
-v /docker_nginx/conf/nginx:/etc/nginx \
-v /docker_nginx/html:/usr/share/nginx/html \
-v /docker_nginx/logs/:/var/log/nginx \
nginx:1.20.2浏览器访问容器Nginx服务:http://server_ip
3、Docker部署tomcat
案例:在Docker容器中部署tomcat,并通过外部浏览器访问tomcat。
下载tomcat镜像文件
docker pull tomcat:8.5-jre10-slim创建数据卷目录
mkdir /docker_tomcat拷贝容器数据
docker run -id --name=tomcat tomcat:8.5-jre10-slim /bin/bash
docker cp tomcat:/usr/local/tomcat /tomcat
#停止tomcat容器并删除
docker stop tomcat && docker rm tomcat创建容器挂载数据卷
docker run -id --name=tomcat -p 8080:8080 \
-v /tomcat/tomcat:/usr/local/tomcat \
tomcat:8.5-jre10-slim浏览器访问容器tomcat服务:http://server_ip:8080
评论区