Docker部署Mysql+Tomcat+Nginx+Redis——CentOS8-arm64

4 篇文章 0 订阅
2 篇文章 0 订阅

部署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;

docker-mysql
修改root用户密码

  1. 进入mysql数据库

    use mysql;

  2. 修改root用户密码

    set password for root@localhost = password(‘newpassword’);

  3. 退出数据库后使用新密码登录

6. 外部机器连接容器中的mysql

设置容器中的mysql允许远程连接:

  1. 进入mysql数据库

    use mysql;

  2. 查看用户和权利

    select user,host from user;

  3. 可以看到root用户的host为localhost表示只允许本地访问

    docker-mysql

  4. 修改root的访问权限

    update user set host=“%” where user=“root”;

  5. 使本次修改立即生效

    flush privileges;

  6. 远程连接成功:注意——远程连接的ip地址要使用虚拟机的ip地址,可以在虚拟机上使用ip address查看

    docker-mysql-remote

部署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

docker-tomcat-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地址 即可看到输出

docker-tomcat-html

部署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可以免费下载

测试连接成功:

docker-redis-remote

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较复杂的问题,我尽量简要地回答。 1. Docker部署: a. 安装Docker的依赖:yum install -y yum-utils device-mapper-persistent-data lvm2 b. 添加Docker的yum源:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo c. 安装Docker:yum install docker-ce d. 启动Docker:systemctl start docker e. 设置Docker开机自启动:systemctl enable docker 2. Mysql部署: a. 安装Mysql的依赖:yum install -y wget b. 下载Mysql的yum源:wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm c. 安装Mysql的yum源:yum localinstall -y mysql80-community-release-el7-3.noarch.rpm d. 安装Mysql:yum install -y mysql-community-server e. 启动Mysql:systemctl start mysqld f. 查看Mysql的初始密码:grep 'temporary password' /var/log/mysqld.log g. 登录Mysqlmysql -u root -p h. 修改Mysql的密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password'; 3. Elasticsearch的部署: a. 安装Elasticsearch的依赖:yum install -y java-1.8.0-openjdk b. 下载Elasticsearch:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.1-linux-x86_64.tar.gz c. 解压Elasticsearch:tar -zxvf elasticsearch-7.10.1-linux-x86_64.tar.gz d. 进入Elasticsearch目录:cd elasticsearch-7.10.1/ e. 启动Elasticsearch:./bin/elasticsearch 4. Redis部署: a. 安装Redis的依赖:yum install -y gcc make b. 下载Redis:wget http://download.redis.io/releases/redis-6.0.9.tar.gz c. 解压Redis:tar -zxvf redis-6.0.9.tar.gz d. 进入Redis目录:cd redis-6.0.9/ e. 编译Redis:make f. 启动Redis:./src/redis-server 5. Nginx部署: a. 安装Nginx的依赖:yum install -y gcc pcre-devel openssl-devel b. 下载Nginx:wget http://nginx.org/download/nginx-1.18.0.tar.gz c. 解压Nginx:tar -zxvf nginx-1.18.0.tar.gz d. 进入Nginx目录:cd nginx-1.18.0/ e. 编译Nginx:./configure --prefix=/usr/local/nginx --with-http_ssl_module f. 安装Nginx:make && make install g. 启动Nginx:/usr/local/nginx/sbin/nginx 6. Kafka的部署: a. 安装Kafka的依赖:yum install -y java-1.8.0-openjdk b. 下载Kafka:wget https://dlcdn.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz c. 解压Kafka:tar -zxvf kafka_2.13-3.0.0.tgz d. 进入Kafka目录:cd kafka_2.13-3.0.0/ e. 启动Zookeeper:bin/zookeeper-server-start.sh config/zookeeper.properties f. 启动Kafka:bin/kafka-server-start.sh config/server.properties 以上是大致的步骤,具体的细节可能会有所不同,还请您根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值