Docker实战部署
Dockerfile
什么是Dockerfile?
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
使用Dockerfile定制镜像
以定值一个nginx镜像为例,首先我们先创建一个Dockerfile文件
touch Dockerfile
之后编辑文件
vi Dockerfile
摁i进入INSERT模式,输入内容
编辑完成摁Esc后输入 :wq 退出
在Dockerfile文件所在目录执行
docker build -t ${目录名}/${镜像名} .
可以使用docker images来查看是否添加成功
接下来启动容器
docker run --name ${容器名称} -d -p ${主机端口}:${容器端口} ${仓库名称}/${镜像名称}
去浏览器 访问路径http://${服务器地址}:${端口号}
。
那么对于整个过程中的命令,做以下详解和拓展
FROM:基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是from。
MAINTAINER:镜像维护者的姓名和邮箱地址
RUN:· 在 docker build时运行,容器构建时需要运行的命令
RUN yum -y install vim
EXPOSE:当前容器对外暴露出的端口
WORKDIR:指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点
COPY:拷贝文件和目录到镜像中
CMD:在docker run 时运行,指定容器启动后的要干的事情
ENV:在构建镜像过程中设置环境变量,之后可以用**${路径名}**来获取
将 docker 中镜像导出到本地以及从本地读取镜像:
导出容器中的镜像
docker save (容器id) < (文件名).tar
从文件中导入到镜像
docker import (文件名).tar (自定义镜像名)
Docker微服务实战
docker 内运行 Springboot 项目
- 首先将要运行的 Springboot 项目打成 jar 包, 并拷贝至服务器中
- 创建 Dockerfile 文件
FROM java:8
MAINTAINER myname
ADD test8.jar test8.jar
CMD java -jar test8.jar
注: ADD 后第一个参数是服务器上jar包的名字, 后面的参数是复制后的名字(自定); CMD 后是要执行的语句 (运行 jar ).
- 将 Dockerfile 打包镜像
docker build -f <Dockerfile文件路径> -t test8 .
- 运行容器
docker run -id -p 8082:8082 test8
注: 外部访问需要配置端口映射
docker 内运行 Springboot XTTP Redis
在pom.xml中规定打包方式
在右侧 maven --> package
一般是在项目路径–>target下
在服务器上新建一个文件夹static_demo,将jar包传上服务器。
新建Dockerfile文件
touch Dockerfile
编辑(如果服务器上没有下载vim使用vi即可)
vim Dockerfile
摁Esc后输入 :wq 退出
前提:进入Dockerfile文件目录下
docker build -t ${镜像名称} .
这个镜像名称是自己起的 镜像中还未存在
注意句末的 .
docker run -d -p
主机端口
:
{主机端口}:
主机端口:{容器端口} ${镜像名称}
使用docker ps查看是否启动成功
如果上面既没报错,也没有正在启动中,一个可能是内存不足,一个可能项目中的服务器连接错误。
让我们测试一下效果怎么样
ps:本人技术小白,如果有错望指出,共同进步!