Dockerfile初体验

Dockerfile构建nginx

创建一个文件夹
mkdir -p /nginx

进入创建的目录
cd /nginx

创建并编辑 添加下面两行
vim Dockerfile

行1,去本地找基础的镜像
FROM nginx
行2,把<h1>I'm index.html...</h1>写到 /usr/share/nginx/html/index.html文件中
RUN echo "<h1>I'm index.html...</h1>" > /usr/share/nginx/html/index.html

构建镜像 nginx代表镜像名称 taopanfeng相当于版本号 .代表当前目录
docker build -t nginx:taopanfeng .

运行容器
docker run --name nginx_01 -p 91:80 -d nginx:taopanfeng

Windows访问 192.168.1.3:91 就可以显示我们往index.html中写入的内容了

Dockerfile构建springboot项目

部署
mkdir -p /app/test
cd /app/test

1,spring快速创建项目 
2,添加web启动器
3,在application.properties中添加server.port=8101
4,在Controller创建一个方法 GetMapping("hello")返回 I'm hello...
5,直接maven clear package
6,把target中的jar包传到 /app/test

vim Dockerfile
###
# 基于java:8 这个镜像
FROM java:8
# 将本地文件夹挂载到容器的/tmp
VOLUME /tmp
# 把这个jar添加到容器的根目录 并改名为 app.jar
ADD demo-0.0.1-SNAPSHOT.jar /app.jar
# 向外暴露8101 也就是Docker容器的端口为8101
EXPOSE 8101
# 配置容器启动后执行 java -jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
###

创建镜像  test镜像名 0.0.1版本号 .代表当前目录
docker build -t test:0.0.1 .

执行容器端口8101 Linux端口8102    容器名称 test01
docker run --name test01 -p 8102:8101 -d test:0.0.1

这里test01就是我们刚才启动的名称,显示出信息IPAddress对应就是容器ip
docker inspect test01

Linux---访问 返回I'm hello... 
这里表示Linux访问容器的ip和端口 因为那个jar是在容器中执行的
curl 172.17.0.4:8101/hello

Windows---浏览器访问 返回I'm hello... 
这里表示Windows访问Linux的ip和端口
因为Windows不能访问容器 需要通过Linux的ip加上docker run中的-p代理的端口访问
192.168.1.3:8102/hello
原文地址:https://www.cnblogs.com/taopanfeng/p/11684941.html