Docker 入门系列
Docker 入门(一)安装 Docker - 苗锦洲的个人博客 (ordinaryroad.top)
Docker 入门(二)安装 Docker-Compose (ordinaryroad.top)
Docker 入门(三)Docker Compose 部署 MySQL - 苗锦洲的个人博客 (ordinaryroad.top)
Docker 入门(四)Docker Compose 部署 Redis - 苗锦洲的个人博客 (ordinaryroad.top)
Docker 入门(五)Docker Compose 部署 Spring Boot 访问 MySQL - 苗锦洲的个人博客 (ordinaryroad.top)
Dockerfile
# Docker image for springboot file run # VERSION 0.0.1 # Author: eangulee # 基础镜像使用java FROM java:8 # 作者 MAINTAINER miaojinzhou <1962247851@qq.com> #工作目录 #WORKDIR /opt/docker/blog/ # VOLUME 指定了临时文件目录为/tmp。 # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp VOLUME /tmp #声明了容器应该打开的端口,实际上不会有什么操作,只是一个提示 #EXPOSE 80 443 #定义参数 #ARG JAR_FILE # 时区配置 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN echo 'Asia/Shanghai' >/etc/timezone # 环境变量 #ENV HOST 81.70.194.184 # 将jar包添加到容器中并更名为app.jar ADD *.jar app.jar #拷贝本地文件到镜像中#复制上下文目录下的target/demo-1.0.0.jar 到容器里 #COPY ${JAR_FILE} penguin-log-web.jar # COPY和ADD的区别时COPY的SRC只能是本地文件,其他用法一致。 # 运行jar包 #RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
docker-compose.yml 配置
version: '3' services: hello_docker: build: context: . dockerfile: Dockerfile image: hello_docker:1.0.0 # 自动添加host extra_hosts: - "master:192.168.56.100" container_name: hello_docker restart: always networks: - nets ports: - "9260:9260" networks: nets: external: false
打包镜像
先将 jar 包和 Dockerfile 复制到 Vagrantfile 所在目录(Vagrant 默认 Vagrantfile 所在目录就是共享目录)
然后在 master 上执行
touch /vagrant/Dockerfile touch /vagrant/hello_docker-0.0.1-SNAPSHOT.jar
重启 master,可以触发自动同步,然后复制到 docker-compose.yml 所在目录,执行
docker-compose build
运行
docker-compose up -d
进入容器查看 Host
[root@master hello_docker]# docker exec -it eeb6f53963cf bash ccartroot@eeb6f53963cf:/# cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 192.168.56.100 master 172.19.0.2 eeb6f53963cf root@eeb6f53963cf:/#
可以看到自动增加了
192.168.56.100 master