Vue项目
我们先建立一个项目的文件目录,比如
然后在该目录下创建vue工程
vue工程的创建我就不赘述了,网上教程一大把。这里提一下的是,我们需要的是vue项目build后的静态文件,将其放在nginx目录下。
vue工程创建好后,cd到工程目录,修改你的前端代码,这里我们只是为了尝试docker运行vue项目build的文件,所以就用默认的代码,npm run build打包项目
nginx配置
我们从docker hub上面进行nginx的拉取,通过docker pull nginx进行拉取,拉取完后,可通过命令docker image ls 命令来查看本地已存在的镜像列表,会发现多了个nginx镜像
可以在项目(vue-test/vue工程目录)的根目录新增一个nginx.conf文件,和nginx目录下配置文件一样,可以修改自定义配置
不用配置也可以,就会使用nginx默认配置,默认80端口、静态页目录ngnix/html
Dockerfile
项目(vue-test/vue工程目录)的根目录增加一个Dockerfile文件mkdir Dockerfile
然后vi Dockerfile编辑内容如下:
FROM nginx #指定基础镜像,即运行环境
COPY dist/ /usr/share/nginx/html/ #copy dist/ 到镜像内/usr/share/nginx/html/下
然后在该目录下运行docker build -t 自定义镜像名 .
构建一个新镜像,如果本地不存在指定的基础镜像,docker会自动拉取,这里等待完成即可
完成后输入docker images
会发现镜像列表多了一个刚刚自定义名字的镜像
最后docker run --name 自定义容器名 -p8080:80 -d 自定义镜像名
运行一个容器,之后打开对应地址8080端口就可以访问这个项目了
docker运行springboot项目
然后我尝试着docker运行了一个springboot,具体步骤大同小异,这里简述一下,首先我在本地机器(docker部署在远程服务器上)创建了一个springboot项目,简单的写了一个接口,然后通过maven打成jar包,然后xshell上传到服务器,在该目录下创建Dockerfile:
FROM java:8
VOLUME /tmp
ADD movie-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
说明:
FROM:表示基础镜像,即运行环境
VOLUME:一个特别指定的目录,用于存储数据,该命令的作用是在/var/lib/docker创建一个名为tmp的目录,在开启redis服务时,需要特别指定redis的数据存储在哪个文件夹,此时这个命令就十分有用
ADD:拷贝文件并且重命名
EXPOSE:并不是真正的发布端口,这个只是容器部署人员与建立image的人员之间的交流,即建立image的人员告诉容器布署人员容器应该映射哪个端口给外界
ENTRYPOINT:容器启动时运行的命令,相当于我们在命令行中输入java -jar xxxx.jar,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT
然后执行上文提到的命令
docker build -t 自定义镜像名 .
docker run --name 自定义容器名 -p8081:8080 -d 自定义镜像名
之后访问8081端口,正确显示了接口返回
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。