Docker部署Mysql+Tomcat+Nginx+Redis——CentOS8-arm64
部署Mysql1. 查找mysql镜像docker search mysql2. 拉取mysql镜像非arm64版CentOS的拉取命令:docker pull mysql:5.6但是我的arm64版会报错no matching manifest for linux/arm64/v8 in the manifest list entries,因为这个版本的mysql不适用于arm64。可以到doc
部署Mysql
1. 查找mysql镜像
docker search mysql
2. 拉取mysql镜像
非arm64版CentOS的拉取命令:
docker pull mysql:5.6
但是我的arm64版会报错no matching manifest for linux/arm64/v8 in the manifest list entries
,因为这个版本的mysql不适用于arm64。
可以到docker的镜像中心:https://hub.docker.com 查找images,搜索mysql,点进去看版本,找到支持arm64架构的版本,使用旁边的docker命令拉取myql镜像。
我这里选的是mysql:oracle
docker pull mysql:oracle
3. 创建容器,设置端口映射、目录映射
# 在/root目录下创建mysql-docker目录用于存储mysql数据信息
mkdir ~/mysql-docker
cd ~/mysql-docker
创建守护式mysql容器(退出容器后,容器不会关闭)
docker run -id \
-p 3307:3306 \ # 宿主机端口:容器端口 将容器的3306端口映射到宿主机的3307端口,如果主机的3306端口没有被占用一般都映射到相同的端口。
--name=c_mysql \
-v $PWD/conf:/etc/mysql/conf.d \ # 将主机当前目录下的conf目录挂载到容器的/etc/mysql目录
-v $PWD/logs:/logs \ # 将主机当前目录下的logs目录挂载到容器的/logs目录
-v $PWD/data:/var/lib/mysql \ # 将主机当前目录下的data目录挂载到容器的/var/lib/mysql目录
-e MYSQL_ROOT_PASSWORD=123456 \ # 初始化mysql的root用户密码
mysql:oracle
4. 查看容器状态
docker ps -a
status一栏是Up则表示正常运行
5. 进入容器,操作mysql
docker exec -it c_mysql /bin/bash
mysql -uroot -p123456
show databases;
create database db1;
修改root用户密码
-
进入mysql数据库
use mysql;
-
修改root用户密码
set password for root@localhost = password(‘newpassword’);
-
退出数据库后使用新密码登录
6. 外部机器连接容器中的mysql
设置容器中的mysql允许远程连接:
-
进入mysql数据库
use mysql;
-
查看用户和权利
select user,host from user;
-
可以看到root用户的host为
localhost
表示只允许本地访问 -
修改root的访问权限
update user set host=“%” where user=“root”;
-
使本次修改立即生效
flush privileges;
-
远程连接成功:注意——远程连接的ip地址要使用虚拟机的ip地址,可以在虚拟机上使用
ip address
查看
部署Tomcat
1. 查找tomcat镜像
docker search tomcat
2. 拉取适合arm64/v8的镜像
docker pull arm64v8/tomcat
3. 创建容器,设置端口映射、目录映射
# 在/root目录下创建tomcat-docker目录用于存储tomcate数据信息
mkdir ~/tomcat-docker
cd ~/tomcat-docker
docker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
arm64v8/tomcat
4. 使用外部机器访问容器中的tomcat
创建一个测试页面
cd ~/tomcat-docker
mkdir test
vim test/index.html
写入:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试容器中的tomcat</title>
</head>
<body>
Tomcat in docker is running!!!
</body>
</html>
外部机器访问tomcat:虚拟机ip:8080/test/index.html
部署Nginx
1. 查询nginx镜像
docker search nginx
2. 拉取nginx镜像
docker pull nginx
3. 创建容器,设置端口映射、目录映射
mkdir ~/nginx-docker
cd ~/nginx-docker
mkdir conf
# 在~/nginx-docker/conf/目录下创建nginx.conf文件
vim conf/nginx.conf
# 粘贴以下内容
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
docker run -id --name=c_nginx \
-p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx
4. 使用外部机器访问容器中的nginx
在html目录下创建index.html用于测试nginx
cd ~/nginx-docker
vim html/index.html
输入以下内容:
<h1>nginx in docker is running</h1>
在浏览器地址栏输入:虚拟机ip地址 即可看到输出
部署Redis
1. 查找redis镜像
docker search redis
2. 拉取redis镜像
docker pull redis
3. 创建容器,设置端口映射
docker run -id --name=c_redis -p 6378:6379 redis # 我的虚拟机安装了一个redis所以不能将主机的6379端口跟redis容器的6379端口映射,改成了6378
4. 使用外部机器(Mac)连接redis
使用了redis连接工具:redis-pro 在appstore可以免费下载
测试连接成功:
更多推荐
所有评论(0)