centos7用docker-compose安装支持java8的tomcat和mysql并且服务自启动
59 2025-04-07 16:52
以下是一个基于
docker-compose
在CentOS 7
上安装支持Java 8
的Tomcat
和MySQL
的示例,并且实现服务自启动:1. 安装 Docker 和 Docker Compose
首先确保你的系统中已安装 Docker 和 Docker Compose。如果尚未安装,可以按照以下步骤进行安装:
安装 Docker
bash
复制
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
安装 Docker Compose
bash
复制
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')" /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
2. 创建 docker-compose.yml
文件
在合适的位置(例如
/home/user/myapp
)创建一个目录,并在该目录中创建docker-compose.yml
文件,内容如下:yaml
复制
version: '3.8'
services:
mysql:
image: mysql:5.7
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: your_database_name
MYSQL_USER: your_username
MYSQL_PASSWORD: your_password
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
restart: always
tomcat:
image: tomcat:8.5-jre8
container_name: tomcat
ports:
- "8080:8080"
volumes:
- ./webapps:/usr/local/tomcat/webapps
depends_on:
- mysql
restart: always
volumes:
mysql_data:
3. 配置说明
-
MySQL:
-
使用
mysql:5.7
镜像。 -
设置环境变量
MYSQL_ROOT_PASSWORD
、MYSQL_DATABASE
、MYSQL_USER
和MYSQL_PASSWORD
,用于初始化数据库。 -
将容器的
3306
端口映射到宿主机的3306
端口。 -
使用
volumes
挂载数据卷mysql_data
,确保数据持久化。 -
设置
restart: always
,确保服务自启动。
-
-
Tomcat:
-
使用
tomcat:8.5-jre8
镜像,支持Java 8
。 -
将容器的
8080
端口映射到宿主机的8080
端口。 -
使用
volumes
挂载./webapps
目录到容器的/usr/local/tomcat/webapps
目录,方便部署应用。 -
设置
depends_on
,确保Tomcat
在MySQL
启动后启动。 -
设置
restart: always
,确保服务自启动。
-
4. 启动服务
在
docker-compose.yml
文件所在的目录下运行以下命令启动服务:bash
复制
docker-compose up -d
5. 验证服务
-
访问
http://<你的服务器IP>:8080
,如果看到Tomcat
的欢迎页面,则表示Tomcat
服务已成功启动。 -
使用
mysql -h 127.0.0.1 -u your_username -p
连接到MySQL
数据库,输入密码后,如果能够成功登录,则表示MySQL
服务已成功启动。
6. 服务自启动
由于在
docker-compose.yml
中设置了restart: always
,服务会在容器退出或系统重启后自动启动。此外,Docker 服务本身也会在系统启动时自动启动,因为之前执行了systemctl enable docker
命令。通过以上步骤,你就可以在
CentOS 7
上使用docker-compose
安装支持Java 8
的Tomcat
和MySQL
,并且实现服务自启动。
docker exec -it mysql /bin/bash
mysql -u root -p
[root@iZ2zed4vmulmu2gioymytpZ mnt]# ll
total 36
drwxr-xr-x 4 root root 4096 Apr 12 13:57 docker-compose-yml
drwx------ 2 root root 16384 Apr 12 09:25 lost+found
drwxr-xr-x 6 polkitd root 4096 Apr 12 14:48 mysql_data
drwxr-xr-x 2 root root 4096 Apr 12 14:31 user1
drwxr-xr-x 4 root root 4096 Apr 12 11:45 vsftp
drwxr-xr-x 3 root root 4096 Apr 12 14:42 webapps
[root@iZ2zed4vmulmu2gioymytpZ mnt]# rm -rf mysql_data
[root@iZ2zed4vmulmu2gioymytpZ mnt]# rm -rf vsftp
[root@iZ2zed4vmulmu2gioymytpZ mnt]# ll
total 28
drwxr-xr-x 4 root root 4096 Apr 12 13:57 docker-compose-yml
drwx------ 2 root root 16384 Apr 12 09:25 lost+found
drwxr-xr-x 2 root root 4096 Apr 12 14:31 user1
drwxr-xr-x 3 root root 4096 Apr 12 14:42 webapps
[root@iZ2zed4vmulmu2gioymytpZ mnt]#
mkdir -p /mnt/vsftp/ftp_user
mkdir -p /mnt/vsftp/log/vsftpd
mkdir -p /mnt/mysql_data
mkdir -p /mnt/webapps
全部评论