IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker部署Mysql+Tomcat+Nginx+Redis——CentOS8-arm64 -> 正文阅读

[系统运维]Docker部署Mysql+Tomcat+Nginx+Redis——CentOS8-arm64

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

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

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:58:21  更:2022-03-16 23:02:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:34:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码