当前位置:   article > 正文

Java_Docker

Java_Docker

镜像和容器:

镜像仓库:

        存储和管理镜像的平台,镜像仓库中有非常多常用软件的镜像,Docker官方维护了一个公共仓库​​​​​​:​Docker Hub

部署MySQL:

  1. docker run -d \
  2. --name mysql \
  3. -p 3306:3306 \
  4. -e TZ=Asia/Shanghai \
  5. -e MYSQL_ROOT_PASSWORD=123 \
  6. mysql

        端口映射即将服务器端口映射到容器端口,例如访问服务器的3306端口,则服务器会调用MySQL容器。

        镜像名称一般分两部分:镜像名:版本,没有指定版本时默认为最新版本。

常用命令:

命令别名:

①进入root下的.bashrc文件:

vi ~/.bashrc

如下:

②添加命令别名:

我已经在其中添加了一行内容

alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'

即代表dps命令可以代表后面单引号内的命令,具有同样功能,即更加简洁的展示容器状态信息。

③使文件生效:

source ~/.bashrc

接下来就可以直接使用dps命令了

数据卷挂载:

        完成绑定映射的文件,修改其中一个另一个也会自行修改。这样可以更好的利用宿主机的更高级的编辑器,方便我们操作容器内文件,或者方便迁移容器产生的数据。

常用命令:

映射nginx的静态文件html:

docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx

        这里需要先删除原有的nginx容器,重新run一个nginx容器。

本地目录挂载:

练习:

代码:

  1. docker run -d \
  2. --name mysql \
  3. -p 3306:3306 \
  4. -e TZ=Asia/Shanghai \
  5. -e MYSQL_ROOT_PASSWORD=123 \
  6. -v /root/mysql/data:/var/lib/mysql \
  7. -v /root/mysql/init:/docker-entrypoint-initdb.d \
  8. -v /root/mysql/conf:/etc/mysql/conf.d \
  9. mysql

        注意需要先删除原MySQL容器

自定义镜像:

镜像结构:

DockerFile:

构建Java镜像:

Dockerfile:
  1. # 基础镜像
  2. FROM openjdk:11.0-jre-buster
  3. # 设定时区
  4. ENV TZ=Asia/Shanghai
  5. RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
  6. # 拷贝jar包
  7. COPY docker-demo.jar /app.jar
  8. # 入口
  9. ENTRYPOINT ["java", "-jar", "/app.jar"]

网络:

自定义网络:

        假如自定义网络的容器才可以通过容器名互相访问。

常用命令:

也可以在容器创建时将它放入某个网络:

docker run -d --name your-images-name -p 80:80 --network your-net-name images-name

DockerCompose:

MySQL的两种部署方法:

使用DockerCompose部署:

        一次性部署MySQL、前端和后端

docker-compose.yml:

  1. version: "3.8"
  2. services:
  3. mysql:
  4. image: mysql
  5. container_name: mysql
  6. ports:
  7. - "3306:3306"
  8. environment:
  9. TZ: Asia/Shanghai
  10. MYSQL_ROOT_PASSWORD: 123
  11. volumes:
  12. - "./mysql/conf:/etc/mysql/conf.d"
  13. - "./mysql/data:/var/lib/mysql"
  14. - "./mysql/init:/docker-entrypoint-initdb.d"
  15. networks:
  16. - hm-net
  17. hmall:
  18. build:
  19. context: .
  20. dockerfile: Dockerfile
  21. container_name: hmall
  22. ports:
  23. - "8080:8080"
  24. networks:
  25. - hm-net
  26. depends_on:
  27. - mysql
  28. nginx:
  29. image: nginx
  30. container_name: nginx
  31. ports:
  32. - "18080:18080"
  33. - "18081:18081"
  34. volumes:
  35. - "./nginx/nginx.conf:/etc/nginx/nginx.conf"
  36. - "./nginx/html:/usr/share/nginx/html"
  37. depends_on:
  38. - hmall
  39. networks:
  40. - hm-net
  41. networks:
  42. hm-net:
  43. name: hmall

(参考docker run写)

将上述文件与mysql、nginx、后端dockerfile与jar包放到同一目录下

再执行下面的语句:

docker compose up -d

即可成功部署。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/892192
推荐阅读
相关标签
  

闽ICP备14008679号