Java_Docker

news2024/12/22 18:27:52

镜像和容器:

镜像仓库:

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

部署MySQL:

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  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容器。

本地目录挂载:

练习:

代码:

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  -v /root/mysql/data:/var/lib/mysql \
  -v /root/mysql/init:/docker-entrypoint-initdb.d \
  -v /root/mysql/conf:/etc/mysql/conf.d \
  mysql

        注意需要先删除原MySQL容器

自定义镜像:

镜像结构:

DockerFile:

构建Java镜像:

Dockerfile:
# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY docker-demo.jar /app.jar
# 入口
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:

version: "3.8"

services:
  mysql:
    image: mysql
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "./mysql/conf:/etc/mysql/conf.d"
      - "./mysql/data:/var/lib/mysql"
      - "./mysql/init:/docker-entrypoint-initdb.d"
    networks:
      - hm-net
  hmall:
    build: 
      context: .
      dockerfile: Dockerfile
    container_name: hmall
    ports:
      - "8080:8080"
    networks:
      - hm-net
    depends_on:
      - mysql
  nginx:
    image: nginx
    container_name: nginx
    ports:
      - "18080:18080"
      - "18081:18081"
    volumes:
      - "./nginx/nginx.conf:/etc/nginx/nginx.conf"
      - "./nginx/html:/usr/share/nginx/html"
    depends_on:
      - hmall
    networks:
      - hm-net
networks:
  hm-net:
    name: hmall

(参考docker run写)

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

再执行下面的语句:

docker compose up -d

即可成功部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1936684.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C/C++的堆栈内存分配详解

在C/C编程中,内存管理是至关重要的一个方面。理解内存的分配方式有助于编写高效、可靠的程序,C/C主要使用两种内存分配方式:堆(heap)和栈(stack)。这两者在管理方式、性能和使用场景上都有显著区…

RDMA软件架构

RDMA 的软件架构按层次可分成两部分,即 rdma-core 和内核 RDMA 子系统,分别运行在 Linux 系统中的用户态和内核态。整个软件架构适用于所有类型的 RDMA 网卡,不管网卡执行了哪种 RDMA 协议(InfiniBand/RoCE/ iWARP)。 …

[SUCTF 2019]EasySQL1

这是一个简单的SQL注入题,但是因为我的SQL基础约等于0,所以做起来很难。 首先试试引号是否被过滤 可以看到单引号、双引号都被过滤了,试试其他的盲注都不行,基本上可以确定不能用这种方法。 在测试的过程中发现,输入…

Python实现招聘数据采集 ,并做可视化分析

转眼秋招快到了, 今天来学习一下如何用Python采集全网招聘数据,并进行可视化分析,为就业准备~ 话不多说开始造 源码和详细的视频讲解我都打包好了,文末名片自取 准备工作 首先你需要准备这些 环境 Python 3.10 Pycharm 模块…

[解决方法]git上传的项目markdown文件的图片无法显示

应该有不少初学者会遇到这种情况 以下是本人摸索出的解决方法 我使用的是typora,首先设置typora的图片设置 文件>偏好设置>图像 如下: 选择这个就会在此文件的同级目录下创建一个assets文件夹来存放此markdown文件的所有图片 然后勾选优先使用相…

开机自启动设置

该方法优点是最简单且bug最少: 按键盘上的:CtrlR 打开"运行”,输入“shell:startup"并打开;下次重启即可自动启动软件了

CSRF防御及模拟CSRF攻击

CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种攻击方式,攻击者可以诱使用户在已登录的应用中执行非本意的操作。为了防御这种攻击,许多Web应用会使用CSRF Token来验证请求的合法性。 0.csrf 攻击原理 2. 后端服…

2024 HNCTF PWN(hide_flag Rand_file_dockerfile Appetizers TTOCrv_)

文章目录 参考hide_flag思路exp Rand_file_dockerfile libc 2.31思路exp Appetizers glibc 2.35绕过关闭标准输出实例客户端 关闭标准输出服务端结果exp TTOCrv_🎲 glibc 2.35逆向DT_DEBUG获得各个库地址随机数思路exp 参考 https://docs.qq.com/doc/p/641e8742c39…

HTTPS 的加密过程 详解

HTTP 由于是明文传输,所以安全上存在以下三个风险: 窃听风险,比如通信链路上可以获取通信内容。篡改风险,比如通信内容被篡改。冒充风险,比如冒充网站。 HTTPS 在 HTTP 与 TCP 层之间加入了 SSL/TLS 协议&#xff0c…

LVS+Nginx高可用集群---搭建高可用集群负载均衡

1.LVS简介 Lvs(Linux Virtual Server):使用集群,对于整个用户来说是透明,用户访问的时候是单个高性能的整体。道理与nginx类似 LVS网络拓扑图:是基于四层。 用户通过浏览器发送请求,然后到达LVS.Lvs根据相应算法将…

使用NIFI连接瀚高数据库_并从RestFul的HTTP接口中获取数据局_同步到瀚高数据库中---大数据之Nifi工作笔记0067

首先来看一下如何,使用NIFI 去连接瀚高数据库. 其实,只要配置好了链接的,连接字符串,和驱动,任何支持JDBC的数据库都可以连接的. 首先我们用一个ListDatabaseTables处理器,来连接瀚高DB 主要是看这里,连接地址,以及驱动,还有驱动的位置 这个是数据连接的配置 jdbc:highgo://…

FinClip 率先入驻 AWS Marketplace,加速全球市场布局

近日,凡泰极客旗下的小程序数字管理平台 FinClip 已成功上线亚马逊云科技(AWS)Marketplace。未来,FinClip 将主要服务于海外市场的开放银行、超级钱包、财富管理、社交电商、智慧城市解决方案等领域。 在全球市场的多样性需求推动…

【Linux】深入探索`cp`命令:文件复制的全面指南

文章目录 一、cp命令概述二、cp命令的基本用法1. 复制单个文件2. 复制多个文件到目录 三、cp命令的常用选项1. -i:交互式复制(interactive)2. -r或-R:递归复制目录(recursive)3. -v:详细模式&am…

Python学习笔记40:游戏篇之外星人入侵(一)

前言 入门知识已经学完,常用标准库也了解了,pygame入门知识也学了,那么开始尝试小游戏的开发。 当然这个小游戏属于比较简单的小游戏,复杂的游戏需要长时间的编写累计开发经验,同时也需要一定的时间才能编写出来。现在的话还是嫩…

Android 视频音量图标

attrs.xml <?xml version"1.0" encoding"utf-8"?> <resources><!--图标颜色--><attr name"ijkSolid" format"color|reference" /><!--喇叭底座宽度--><attr name"ijkCornerWidth" form…

Android 视频亮度图标

attrs.xml <?xml version"1.0" encoding"utf-8"?> <resources><!--图标颜色--><attr name"ijkSolid" format"color|reference" /><!--圆角大小--><attr name"ijkRadius" format"d…

《Linux运维总结:基于ARM64架构CPU使用docker-compose一键离线部署单机版tendis2.4.2》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;《Linux运维篇&#xff1a;Linux系统运维指南》 一、部署背景 由于业务系统的特殊性&#xff0c;我们需要面对不同的客户部署业务系统&#xff0…

CSRF+XSS组合攻击实战

目录 0x01安装靶场 0x02分析功能点的请求接口&#xff0c;构造恶意请求 0x03寻找xss漏洞 0x01安装靶场 下载源码&#xff0c;解压到网站根目录 1.修改数据库配置文件 打开源码&#xff0c;进入到include目录下&#xff0c;打开数据库配置文件database.inc.php 将数据库的…

Android GWP-Asan使用与实现原理

目录 一、 背景 二、GWP-Asan介绍 2.1 什么是GWP-ASan 2.2 GWP-Asan与其他几类工具对比 2.3 GWP-ASan与其它内存分配器的兼容性 三、GWP-Asan如何使用 3.1 app进程 3.2 native进程 四、GWP-Asan实现原理 4.1 进程启用GWP-Asan 4.2 初始化 4.3 内存分配 4.3.1 内存…

Proxyman for Mac v5.6.1 抓包调试工具

Mac分享吧 文章目录 效果一、下载软件二、功能三、开始安装1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 四、运行测试1、打开软件 安装完成&#xff01;&#xff01;&#xff01; 效果 一…