推荐个人Docker文章,讲的非常详细
【玩转Docker容器 1】Dockerd的详解及安装有的话就可以自己部署自己的项目
我这里提供一个简单的基于SpringBoot开发的APP后端架构项目,
就是连接了使用了Redis和mysql,使用了JWT 生成Token使用Shiro实现了登录等一些软件必须有的接口
链接:https://pan.baidu.com/s/1LZtHSyXYwodQqYm6i_sMvQ
提取码:hsjp
我已经封装成jar包了,没有项目测试部署可以下载下来试试看,第一步操作我已经做完了
把端口号,nysql,redis的地址及密码等 ,一些需要动态改变的地址改成类似于
# 端口号
server:
port: ${port:8888}
为什么要改成这样?
如果我们不改这些都是采用硬编码的方式进行编写,所以我们要让端口、URL地址采用动态改变。在部署的时候进行填写
改成这样其实本机还是可以运行的
#创建文件夹 以及进入文件夹
mkdir /opt/dockerapp
cd /opt/dockerapp
rz
上传完后切记:整个过程一定要在/opt/dockerapp文件夹中操作
在此文件夹输入命令:(实现对Dockerfile文件进行编辑,添加如下所示命令。)
vi Dockerfile
在此文件中填入
FROM java:8 #指定java8环境镜像
COPY ./lijie-example-boot-2.0.jar /app-springboot.jar #将当前目录下的jar文件拷贝到特定目录
COPY ./app-entrypoint.sh / #再拷贝一个脚本文件
RUN chmod +x /app-entrypoint.sh #再给这个脚本文件设置一个可执行的权限。
ENTRYPOINT ["/app-entrypoint.sh"] #运行此文件配置容器启动后执行的命令
编写pp-entrypoint.sh文件编辑,添加如下所示命令。
vi app-entrypoint.sh
在此文件输入:(注:下面诸如$PORT是在使用docker create创建容器时设置的环境变量)
重点:(这里是配置那些属性需要动态的赋值,在底下创建容器时指定)
#!/bin/bash
java -jar -Dport=$PORT -DmysqlHost=$MYSQLHOST -DmysqlPassword=$MYSQLPASSWORD -DredisHost=$REDISHOST -DredisPort=$REDISPORT -DredisPassword=$REDISPASSWORD -DuploadPath=$UPLOADPATH /app-springboot.jar
在此输入构建镜像命令:(后面的:1.0 是自定义版本)
docker build -t lijie-example-boot-2.0.jar:1.0 .
查看创建的镜像
docker images
创建容器命令:(这里是动态的赋值配置文件)
根据自己实际情况来赋值,注意
创建容器命令:(这里是动态的赋值配置文件)
docker create --name app-springboot -t -p 8080:7000 -e PORT=7000 -e MYSQLHOST=120.77.0.58:3303/lijie -e MYSQLPASSWORD=123456 -e REDISHOST=120.77.0.58 -e REDISPORT=16379 -e REDISPASSWORD='' -e UPLOADPATH=/opt/java/uploadImage lijie-example-boot-2.0.jar:1.0
查看所有容器
docker ps -a
找到我们自己的项目容器id,运行下面命令
docker start 容器id运行
查看容器日志看一下,是否成功
docker logs 容器id
1.先找到Linux的lp地址,如果知道IP地址就跳过
如果是虚拟机先关闭防火墙
systemctl stop firewalld
输入ifconfig查看IP地址
ifconfig
如果是阿里云服务器,找到自己的服务器公共IP地址,并且打开开放8080端口号
具体步骤访问:阿里云服务器配置外网访问,打开8080端口
配置好了上面后即可访问项目,此项目只有后端
输入:(IP地址+端口号+/doc.html) 即可查看后端接口
例如 http://120.77.0.34:8080/doc.html
此项目只能查看后端,这是给app提供的java后端项目
除了俩个登录接口(后端登录,app登录)的token是可以随便填写的,其他的接口需要使用的话,必须登录后拿去正确的token才可使用