使用 Dockerfile 构建 Docker 镜像
Dockerfile 是一个文本文件,其中包含若干条指令,描述构建镜像的细节
编写一个最简单的 Dockerfile,通过它来修改镜像的首页
FROM nginx RUN echo '<h1>第一个 Docker 案例</h1>' > /usr/share/nginx/html/index.html
docker build -t nginx:my .
docker run -d -p 92:80 nginx:my
访问 http://Docker 宿主机IP:92/ 即可看到效果
执行以下命令,即可使用镜像启动一个 Docker 容器
在 Dockerfile 所在路径执行以下命令构建镜像,命令最后的 (.) 用于路径参数传递,表示当前路径
该 Dockerfile 非常简单,FROM、RUN 都是 Dockerfile 的指令,FROM 指令用于指定基础镜像,RUN 指令用于执行命令
将微服务构建成镜像
准备工作:一个简单的微服务项目 docker-demo,包含一个 /hello 接口,返回 HelloWorld,并且设置了端口为 8080
server: port: 8080
将项目通过 Maven 打包成 jar 包 docker-demo-0.0.1-SNAPSHOT.jar
mvn clean package
在 jar 包目录,创建名为 Dockerfile 文件
touch Dockerfile
在 Dockerfile 文件中添加以下内容
# 基于哪个镜像FROM java:8# 声明持久化文件挂载点VOLUME /tmp# 复制本地文件到容器ADD docker-demo-0.0.1-SNAPSHOT.jar app.jar# 执行命令RUN bash -c 'touch app.jar'# 声明暴露的端口EXPOSE 8080# 配置容器启动后执行的命令ENTRYPOINT ["java","-jar","app.jar"]
使用 docker build 命令构建镜像
格式:docker build -t 仓库名称(对应 DockerHub 用户名)/镜像名称(对应 DockerHub 仓库名):标签(相当于版本号) Dockerfile的相对位置
docker build -t linyuantongxue/docker-demo:0.0.1 .
启动镜像
docker run -d -p 8761:8080 linyuantongxue/docker-demo:0.0.1
访问 http://Docker宿主机IP:8761/hello 显示 Hello World
注意:如若出现以下错误
WARNING: IPv4 forwarding is disabled. Networking will not work.
解决办法:
// 使用管理员角色打开该配置文件vi /etc/sysctl.conf// 添加以下配置net.ipv4.ip_forward=1// 重启network服务systemctl restart network
作者:林塬
链接:https://www.jianshu.com/p/eefed6a2b204