# docker-compose-deploy **Repository Path**: codewarning/docker-compose-deploy ## Basic Information - **Project Name**: docker-compose-deploy - **Description**: 集成Springboot、Redis、Mysql、Nginx、MongoDB、Portainer服务的Docker-compose配置文件,提供Redis、Mysql、Nginx单独配置文件,提供shell脚本直接自动化部署 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-03-11 - **Last Updated**: 2023-07-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: docker-compose, Docker, SpringBoot ## README ## 安装环境 ### Centos - 安装`Docker` 1. 安装yum工具 ```bash yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 --skip-broken ``` 2. 更新本地镜像源 ```bash # 设置docker镜像源 yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo yum makecache fast ``` 3. 安装docker社区免费版本 ```bash yum install -y docker-ce ``` 4. 测试安装结果 ```bash docker -v ``` - 安装`Docker-Compose` 1. 下载docker-compose文件 ```bash sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ``` 2. 添加可执行权限 ```bash sudo chmod +x /usr/local/bin/docker-compose ``` 3. 测试安装结果 ```bash docker-compose --version ``` >docker卸载命令: > >```bash >yum remove docker \ > docker-client \ > docker-client-latest \ > docker-common \ > docker-latest \ > docker-latest-logrotate \ > docker-logrotate \ > docker-selinux \ > docker-engine-selinux \ > docker-engine \ > docker-ce >``` ### Unbuntu - 安装`Docker` 1. 前置操作 ```bash sudo apt update sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" ``` 2. 安装Docker ```bash sudo apt install docker-ce docker-ce-cli containerd.io ``` 3. 启动Docker ```bash sudo systemctl status docker ``` 4. 测试安装结果 ```bash docker -v ``` - 安装`Docker-Compose` 1. 下载docker-compose文件 ```bash sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ``` 2. 添加可执行权限 ```bash sudo chmod +x /usr/local/bin/docker-compose ``` 3. 测试安装结果 ```bash docker-compose --version ``` > 配置镜像加速: > > ```bash > # 创建文件夹 > sudo mkdir -p /etc/docker > > # 在文件夹内新建一个daemon.json文件 > sudo tee /etc/docker/daemon.json <<-'EOF' > { > "registry-mirrors": ["https://sn8gw9or.mirror.aliyuncs.com"] > } > EOF > > > # 重新加载文件 > sudo systemctl daemon-reload > > # 重启docker > sudo systemctl restart docker > ``` **参考文章**: [如何在 Ubuntu 20.04 上安装和使用 Docker]: https://zhuanlan.zhihu.com/p/143156163 [docker、 docker-compose在Ubuntu下安装及其常用命令]: https://blog.csdn.net/a3613110/article/details/128690022 ## 部署 1. 拉取代码 ```bash git clone git@gitee.com:codewarning/docker-compose-deploy.git ``` > 如果是在Idea里面编辑该项目,可以配置`SFTP`,直接将项目代码上传到远程服务器 2. 运行脚本 ```bash chmod +x deploy.bash # 授权脚本执行权限 ./deploy.bash # 运行脚本 # 或者直接使用 bash deploy.bash 命令运行脚本 ``` > 脚本功能解释(`deploy.bash`): > >1.创建`/usr/local/app`目录,用于存储项目数据和服务配置文件 > >2.复制`./src/main/resources/config`目录下的配置文件到`/usr/local/app`目录下 > >3.运行`docker-compose.yml`配置文件,包括构建镜像,(重新)创建服务,启动服务 3. 查看容器 ```bash [root@hecs-164993 project]# docker-compose ps Name Command State Ports ----------------------------------------------------------------------------------------------------------------- app /usr/local/bin/mvn-entrypo ... Up 0.0.0.0:8080->8080/tcp,:::8080->8080/tcp mongo docker-entrypoint.sh mongod Up 0.0.0.0:27017->27017/tcp,:::27017->27017/tcp mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp,:::3306->3306/tcp, 33060/tcp nginx /docker-entrypoint.sh ngin ... Up 0.0.0.0:80->80/tcp,:::80->80/tcp portainer /portainer Up 8000/tcp, 0.0.0.0:9999->9000/tcp,:::9999->9000/tcp, 9443/tcp redis docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp,:::6379->6379/tcp ``` 4. 测试 ```bash # 测试app curl localhost:8080 # 成功标志:success ``` ```bash # 测试nginx(在/user/local/app/webapp目录下新建一个index.html文件,随便写点代码 curl localhost # 成功标志:控制台显示index.html文件内的内容 ``` > 其他服务请自行测试,可以选择进入容器测试,也可以防火墙放开端口使用远程连接测试 ## 项目结构 ``` │ .dockerignore # Dockerfile中COPY时忽略的文件 │ .gitignore │ deploy.bash # 部署脚本 │ docker-compose.yml #docker-compose配置文件 │ Dockerfile # Java程序的Dockfile配置文件(app镜像) │ LICENSE │ pom.xml │ README.md │ └─src └─main ├─java │ └─com │ └─demo │ │ Application.java │ │ │ └─controller │ PublicController.java # App镜像测试接口 │ └─resources │ application.yml │ └─config ├─maven │ settings.xml # 配置maven仓库镜像 │ ├─mongo │ init.sh # mongodb初始化脚本 │ ├─mysql │ │ my.cnf # 数据库配置文件 │ │ │ └─sql │ user.sql # 数据库启动时运行的sql文件,可有可无 │ ├─nginx │ nginx.conf # nginx的配置文件 │ ├─portainer │ └─redis redis.conf # redis的配置文件 ```