centos7用docker-compose安装支持java8的tomcat和mysql并且服务自启动

59 2025-04-07 16:52

以下是一个基于docker-composeCentOS 7上安装支持Java 8TomcatMySQL的示例,并且实现服务自启动:

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_PASSWORDMYSQL_DATABASEMYSQL_USERMYSQL_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,确保TomcatMySQL启动后启动。
    • 设置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 8TomcatMySQL,并且实现服务自启动。

 

 

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

 

全部评论

·