用 docker-compose 部署设备管理平台
·
1、docker-compose版本需要大于等于1.29
vim /etc/docker/daemon.json
{
"dns": ["223.5.5.5", "223.6.6.6"],
"registry-mirrors": [ "https://0a40cefd360026b40f39c00627fa6f20.mirror.swr.myhuaweicloud.com" ]
}
systemctl daemon-reload
systemctl restart docker
# 卸载旧版
sudo rm /usr/local/bin/docker-compose
# 下载新版(v1 最后版本是 1.29.2,但建议直接用 V2)
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
# 赋权
sudo chmod +x /usr/local/bin/docker-compose
# 验证
docker-compose --version #必须≥1.29版本
2、创建项目目录
mkdir -p /opt/docker-compose_nginx_springboot_mysql/{nginx,springboot,mysql}
3、mysql部分
vim Dockerfile
FROM centos:7
RUN rm -rf /etc/yum.repos/*
ADD CentOS-Base.repo /etc/yum.repos.d/
RUN yum clean all && yum makecache
RUN yum install -y wget perl net-tools
RUN wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
RUN rpm -ivh mysql80-community-release-el7-3.noarch.rpm
RUN yum install -y --nogpgcheck mysql-community-server
RUN mysqld --initialize-insecure --user=mysql
EXPOSE 3306
COPY yl_app.sql /opt
CMD [ "mysqld","--user=mysql" ]
[root@docker mysql]# ls
CentOS-Base.repo Dockerfile yl_app.sql
进入数据库里:
mysqladmin -uroot -p password "123456"
mysql -uroot -p123456
source /opt/yl_app.sql
show databases;
create database yjs1023;
use yjs1023
create table ryf;
create user 'app_user'@'%' identified by '123456';
GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'%' WITH GRANT OPTION;
flush privileges;
use mysql
select * from user\G;
4、nginx部分
vim Dockerfile
FROM centos:7
MAINTAINER this is nginx <ryf>
RUN rm -rf /etc/yum.repos.d/*
ADD CentOS-Base.repo /etc/yum.repos.d
RUN yum clean all && \
yum makecache && \
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
RUN useradd -M -s /sbin/nologin nginx
ADD nginx-1.20.2.tar.gz /usr/local/src/
WORKDIR /usr/local/src/nginx-1.20.2
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install
ENV PATH /usr/local/nginx/sbin:PATH
EXPOSE 80
EXPOSE 443
ENTRYPOINT [ "/usr/local/nginx/sbin/nginx","-g","daemon off;" ]
[root@docker nginx]# ls # dist/ 这个包是老师给的 里边包含静态页面等内容
CentOS-Base.repo Dockerfile
dist nginx-1.20.2.tar.gz
5、springboot部分
vim Dockerfile
FROM centos:7
RUN rm -rf /etc/yum.repos.d/*
ADD CentOS-Base.repo /etc/yum.repos.d/
RUN yum clean all && yum makecache
RUN yum install -y java-1.8.0-openjdk java-1.8.0.openjdk-devel
RUN mkdir -p /opt/webapp
WORKDIR /opt/webapp
COPY yl_application-1.0-SNAPSHOT.jar /opt/webapp/
COPY ./appStart.sh /opt/webapp
RUN chmod 777 appStart.sh
CMD ["/bin/bash","appStart.sh"]
vim appStart.sh
nohup java -jar yl_application-1.0-SNAPSHOT.jar
[root@docker springboot]# ls
appStart.sh Dockerfile
CentOS-Base.repo yl_application-1.0-SNAPSHOT.jar
有现成的jar包 把包中的BOOT-TNE/classess/application-prod.yml文件中的IP 、用户、密码要改成和yml文件中的一摸一样
6、docker-compose.yml文件
version: '3'
services:
nginx:
container_name: nginx-manager
hostname: nginx
build:
context: ./nginx
dockerfile: Dockerfile
ports:
- 234:80
- 443:443
networks:
network-abc:
ipv4_address: 172.20.0.10
volumes:
- ./nginx/nginx.conf:/usr/local/nginx/conf/nginx.conf
- ./nginx/dist:/usr/local/nginx/html
mysql:
container_name: mysql-manager
hostname: mysql
build:
context: ./mysql
dockerfile: Dockerfile
ports:
- 3306:3306
networks:
network-abc:
ipv4_address: 172.20.0.30
springboot:
container_name: springboot-manger
hostname: springboot
build:
context: ./springboot
dockerfile: Dockerfile
ports:
- 8090:8090
networks:
network-abc:
ipv4_address: 172.20.0.20
networks:
network-abc:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
7、启动
docker-compose up -d
8、登录
http://192.168.10.160:234

更多推荐

所有评论(0)