docker应用SpringBoot

文章目录

  • 1. docker环境
    • 1.1 docker安装
    • 1.2 docker Web管理工具
    • 1.3 docker网络
      • 1.3.1 网络说明
      • 1.3.2 创建指定网关的网络
  • 2. docker安装软件
    • 2.1 安装nginx
    • 2.2 安装redis
    • 2.3 安装mysql
    • 2.4 部署springboot程序
      • 2.4.1 编写dockerfile
      • 2.4.2 构建镜像
      • 2.4.3 启动镜像

1. docker环境

1.1 docker安装

#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on

#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker.service

1.2 docker Web管理工具

#创建文件夹
mkdir -p /docker/portainer/{data,public}

#中文汉化
#注意安装前不要导入汉化包,否则无法注册。
https://www.quchao.net/Portainer-CN.html

# 运行
docker run -d -p 9000:9000 --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
--privileged=true \
portainer/portainer-ce

# 初始化登录地址
http://192.168.80.250:9000

admin
111111111111  (12位)

1.3 docker网络

1.3.1 网络说明

首先,我们需要创建一个自定义的网络,这样我们才可以使用Docker为容器分配固定IP。可以使用下面的命令来创建自定义网络:
如果只使用docker network create pub_network创建网络,则容器启动时,会自动分配动态的IP地址和网关。

docker network create --subnet=192.168.0.0/16 pub_network

这个命令将创建名为“mynet”的网络,并指定它的子网为“192.168.0.0/16”。
接下来,我们需要为需要分配固定IP的容器指定IP地址。可以使用下面的命令来启动一个容器,并为它分配固定IP:

docker run --name=ubuntu --net=pub_network --ip=192.168.0.101 -itd ubuntu:latest

这个命令将启动一个名为“ubuntu”的容器,并将它加入到自定义网络“mynet”中。同时,它还为这个容器分配了固定IP地址“192.168.0.101”。
现在,我们可以验证容器的IP地址是否生效。可以使用下面的命令来查看容器的IP地址:

docker inspect ubuntu | grep IPAddress

这个命令将输出包含容器IP地址的行,从而验证我们刚才为容器分配的固定IP地址是否生效了。
最后,需要注意的是,我们可以为同一个网络中的多个容器分配不同的IP地址,但IP地址必须在同一个子网中。

#将容器1添加到my_network网络中
docker network connect my_network container1
#从网络中删除容器1
docker network disconnect my_network container1
#使用Bridge模式进行网络配置
docker run -it --name my_container --net bridge

1.3.2 创建指定网关的网络

docker network create --subnet=192.168.10.0/255 pub_network

2. docker安装软件

2.1 安装nginx

docker pull nginx

#挂载启动
docker run -it -d \
--name=nginx \
--network=pub_network \
-p 80:80 \
-v /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /docker/nginx/html:/usr/share/nginx/html \
-v /docker/nginx/logs:/var/log/nginx \
--privileged nginx


2.2 安装redis

docker pull redis


#配置下面内容
# 文件路径:/docker/redis/redis.conf
port 6379
bind * 
daemonize no
pidfile /docker/redis/redis.pid
appendonly yes


# 启动

docker run \
--network=pub_network \
--name redis \
-v /docker/redis/data:/data \
-v /docker/redis/redis.conf:/etc/redis/redis.conf \
-d redis \
redis-server /etc/redis/redis.conf \
--appendonly yes

2.3 安装mysql

docker pull mysql:5.7

#配置
#文件 /docker/mysql/conf/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

# 启动容器
docker run --name mysql \
-p 3306:3306 \
--network=pub_network \
-v /docker/mysql/log:/var/log/mysql \
-v /docker/mysql/data:/var/lib/mysql \
-v /docker/mysql/conf/my.cnf:/etc/my.cnf \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7


#进入容器内部
docker exec -it mysql bash
mysql -uroot -proot

#给root开远程权限
grant all privileges on *.* to root@"%" identified by "root";
flush privileges;

2.4 部署springboot程序

2.4.1 编写dockerfile

文件名称固定是Dockerfile,不能随意改变,文件内容如下:

FROM openjdk:8  
# 第一行必须是FROM。。。,不能把这行注释移动到第一行。
# 如果镜像没有,则会自动下载

# 作者
MAINTAINER 硅谷工具人

# VOLUME 指向了一个/tmp的目录,由于 SpringBoot使用内置的Tomcat容器,Tomcat默认使用/tmp作为工作目录。
# 这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
VOLUME /tmp

# 将应用的配置文件也拷贝到镜像中。使用下面的ADD也可以
# COPY *.jar /app.jar  

# 将本地JAR包打包到容器中,并重命名(erp.jar是重命名后的jar)
ADD ruoyi-admin.jar erp.jar

# 声明需要暴露的端口,在Dockerfile中声明了那些端口是需要开放的,
# 在构建容器时通过-p可以随机映射端口,如果EXPOSE没有指定端口,那么使用-p参数无效。
# 本配置只是声明,一般我们需要在构建docker容器时使用-p(小写的p)指定开放的端口。
EXPOSE 8080  

#docker启动时,运行的命令,这里容器启动时直接运行jar服务。
ENTRYPOINT ["java","-jar","/erp.jar"]

注意点:
1、文件名必须是Dockerfile,大小写不能修改
2、maven项目先打包,然后将打包好的jar包和Dockerfile文件上传到服务器,并且放到相同的目录。
3、如果有外置配置文件application.yml,也需要放到上面相同的目录。

2.4.2 构建镜像

docker build -t erp:1.0 .

#查看构建的镜像
docker images

2.4.3 启动镜像

docker run --network=pub_network --name erp -d  erp:1.0

你可能感兴趣的:(Docker,docker,容器,运维)