docker(一):Develop faster. Run anywhere.

这篇具有很好参考价值的文章主要介绍了docker(一):Develop faster. Run anywhere.。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

在进行微服务部署时,首先需要进行部署环境的搭建。目前,Docker 已经成为了微服务部署的主流解决方案之一。Docker 可以帮助我们更快地打包、测试以及部署应用程序,从而缩短从编写到部署运行代码的周期。

在本文中,我们将对 Docker 进行初步的讲解,并介绍如何将映像生成并作为容器运行、使用 Docker Hub 共享映像。具体的功能点如下:

  1. 将映像生成并作为容器运行。
  2. 使用 Docker Hub 共享映像。
  3. 使用 Docker Compose 运行应用程序。

基本概念

Docker 是一个开源的应用容器引擎,可以让开发者将应用程序打包成一个容器,并通过容器来部署、运行和管理应用程序。Docker 的核心概念包括容器和镜像。

容器:容器是镜像的可运行实例,可以通过 Docker API 或 CLI 来创建、启动、停止、移动或删除容器。容器提供了一种轻量级、可移植的解决方案,使得应用程序可以在不同的环境中运行。

镜像:镜像是一个只读模板,包含了创建 Docker 容器的说明。没有镜像,就无法创建容器。Docker 镜像可以通过 Dockerfile 文件来创建,也可以从公有仓库中下载使用。公有仓库中包含了大量的镜像,可以供开发者快速使用。

docker架构:Docker 的架构包括 Docker 客户端、Docker 服务器和 Docker 镜像仓库。Docker 客户端是一个命令行工具,可以通过它来与 Docker 服务器进行通信。Docker 服务器是一个后台进程,负责管理容器和镜像。Docker 镜像仓库是一个中央存储库,可以用来存储和分享 Docker 镜像。

docker(一):Develop faster. Run anywhere.

这里不在赘述基础知识了,如果需要可以自行去docker官网进行查看;

安装

windows:window安装地址,直接按照安装提示,一直下一步即可安装成功。

linux:如果想要简单快速直接安装宝塔面板,命令行安装有些复杂,需要根据不同情况安装,这里是博主的安装流程:

  1. 使用 root 权限登录 Centos。确保 yum 包更新到最新。yum ‐y update
  2. 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的。yum install ‐y yum‐utils device‐mapper‐persistent‐data lvm2
  3. 设置yum源,并更新 yum 的包索引 yum‐config‐manager ‐‐add‐repo http://mirrors.aliyun.com/docker‐ce/linux/centos/docker‐ce.repo yum makecache fast
  4. 可以查看所有仓库中所有docker版本,并选择特定版本安装 yum list docker‐ce ‐‐showduplicates | sort ‐r
  5. 安装docker yum ‐y install docker‐ce‐18.03.1.ce # 这是指定版本安装 yum ‐y install docker‐ce # 这是安装最新稳定版
  6. 启动并加入开机启动 systemctl start docker systemctl enable docker
  7. 验证安装是否成功(有client和service两部分表示docker安装启动都成功了) docker version
  8. 卸载docker yum ‐y remove docker‐engine

创建镜像

公有镜像

Docker Hub 是 Docker 官方提供的公有镜像仓库,包含大量的 Docker 镜像,供开发者使用。与 Maven 仓库类似,开发者可以在 Docker Hub 上搜索并下载需要的镜像,从而快速搭建开发环境。以java为例,命令行模式:

  1. docker search java
  2. 执行完 docker pull 命令后,Docker 会从 Docker Hub 中的 Java 仓库下载最新版本的 Java 镜像。如果需要下载指定版本的镜像,则可以在镜像名后面加上冒号并指定版本号。例如: docker pull java:8
  3. docker images 列出镜像
  4. docker rmi java 删除镜像

本地镜像

使用Dockerfile构建Docker镜像,其中的 FROM、 RUN都是 Dockerfile的指令。 FROM 指令用于指定基础镜像,即构建新镜像所依赖的镜像。基础镜像包含了操作系统、软件环境等基本组件。通过 FROM 指令,可以使用已有的镜像作为基础镜像,并在其之上添加新的软件包或配置。RUN 指令用于在镜像中执行命令。通过 RUN 指令,可以在基础镜像之上安装软件包、配置环境变量等。

FROM  java:8
# 复制生成的 jar 文件到容器中
COPY --from=0 /app/bootstrap/target/*.jar /app/app.jar
# 设置工作目录
WORKDIR /app
# 暴露端口
EXPOSE 3112
# 设置时区为 Asia/Shanghai
ENV TZ=Asia/Shanghai
ENV LANG=C.UTF-8

# 设置容器的时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update
RUN apt-get install -y fontconfig

# 定义启动命令
ENTRYPOINT ["sh","-c","java -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -jar app.jar"]

然后在Dockerfile所在路径执行以下命令构建镜像:-t指定镜像名字,命令最后的点(.)表示Dockerfile文件所在路径

docker build ‐t app .

共享镜像

Docker Hub 是 Docker 官方提供的公共镜像仓库,提供了大量的公共镜像供开发者使用。此外,Docker 还提供了一个私有镜像仓库,称为 Docker Registry,可以用于存储和分享私有镜像。

如果开发者需要在自己的项目中使用 Docker 镜像,可以将自己的镜像上传到 Docker Registry 上,然后在其他机器或环境中使用 Docker 命令来下载和运行。

请注意,Docker Hub 只提供一个免费的私有仓库,如果需要使用多个私有仓库,则需要购买额外的订阅服务。

docker仓库地址:hub.docker先在网页端注册,并记住账号密码

docker(一):Develop faster. Run anywhere.

然后再本地使用docker login命令进行登录,这样我们的服务器也会进行登录到私有库,否则你将push失败。

登录成功后,就可以将本地的镜像上传到 Docker Registry 中。可以使用 docker tag 命令来为镜像打上标签,然后使用 docker push 命令来上传镜像。例如:

docker tag app 【你的账号名】/app

修改tag成功后即可推送image到远程仓库:docker push 【你的账号名】/app

运行镜像

使用以下docker run命令即可新建并启动一个容器,该命令是最常用的命令,它有很多选项,下面将列举一些常用的选项。

  1. -d选项:表示后台运行
  2. -P选项:随机端口映射
  3. -p选项:指定端口映射,有以下四种格式:-- ip:hostPort:containerPort、-- ip::containerPort、-- hostPort:containerPort、-- containerPort
  4. --net选项:指定网络模式,该选项有以下可选参数:--net=bridge:默认选项,表示连接到默认的网桥、--net=host:容器使用宿主机的网络、--net=container:NAME-or-ID:告诉 Docker让新建的容器使用已有容器的网络配置、--net=none:不配置该容器的网络,用户可自定义网络配置。

docker run ‐d ‐p 3112:3112 app这样就能启动一个容器。需要注意的是,使用 docker run命令创建容器时,会先检查本地是否存在指定镜像。如果本地不存在该名称的镜像, Docker就会自动从 Docker Hub下载镜像并启动一个 Docker容器。

结语

通过使用 Docker,开发者可以实现快速、可重复的应用程序部署和管理,提高应用程序的可移植性和可扩展性。Docker 的优势在于它可以将应用程序和依赖项打包成一个容器,从而避免了因环境差异而导致的应用程序无法运行的问题。此外,Docker 还提供了一套完整的工具链,包括 Docker Compose、Docker Swarm 等,可以帮助开发者更方便地管理多个容器和多个主机。

Docker Compose 是一个用于定义和运行多个容器的工具,可以将多个容器组合为一个应用程序,并通过一个配置文件来管理这些容器。在使用 Docker Compose 之前,需要先编写一个 docker-compose.yml 文件,该文件包含了所需的容器和配置信息。然后,可以使用 docker-compose 命令来创建、启动、停止和删除多个容器。下一节我们将详细介绍 Docker Compose 技术的原理和使用方法。文章来源地址https://www.toymoban.com/news/detail-438959.html

到了这里,关于docker(一):Develop faster. Run anywhere.的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Pytorch构建Faster-RCNN网络进行目标检测(二)——预训练模型和预测

    CoCo的全称是Common Objects in Context,是微软团队提供的一个可以用来进行图像识别的数据集,包括检测、分割、关键点估计等任务,目前用的比较多的是Coco2017数据集。 Coco2017数据集是一个包含有大量图像和标注数据的开放数据集,它是微软公司在COCO项目基础上发展而来。这个

    2024年02月09日
    浏览(38)
  • 持续进化,快速转录,Faster-Whisper对视频进行双语字幕转录实践(Python3.10)

    Faster-Whisper是Whisper开源后的第三方进化版本,它对原始的 Whisper 模型结构进行了改进和优化。这包括减少模型的层数、减少参数量、简化模型结构等,从而减少了计算量和内存消耗,提高了推理速度,与此同时,Faster-Whisper也改进了推理算法、优化计算过程、减少冗余计算等

    2024年02月06日
    浏览(74)
  • [探地雷达]利用Faster RCNN对B-SCAN探地雷达数据进行目标检测

    引用量较高的一篇会议论文。 由于真实雷达图像较少,作者采用了GPR工具箱,使用不同配置,合成了部分模拟雷达图。然后采用Cifar-10数据(灰度图)对Faster RCNN进行预训练,再采用真实和合成数据进行微调。 论文地址https://arxiv.org/pdf/1803.08414.pdf 探地雷达(GPR)是应用最广泛的

    2024年02月12日
    浏览(46)
  • 计算机视觉的应用4-目标检测任务:利用Faster R-cnn+Resnet50+FPN模型对目标进行预测

    大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用4-目标检测任务,利用Faster Rcnn+Resnet50+FPN模型对目标进行预测,目标检测是计算机视觉三大任务中应用较为广泛的,Faster R-CNN 是一个著名的目标检测网络,其主要分为两个模块:Region Proposal Network (RPN) 和 Fast R-CNN。我

    2024年02月05日
    浏览(50)
  • Django进行docker服务器部署

    Django是一个广泛使用的Python Web框架,而Docker是一个增强应用程序部署的流行容器平台。结合这两个技术,可以轻松地部署和维护Django应用程序。在本文中,我们将探讨如何使用Docker在服务器上部署Django应用程序。 1、安装Docker和Docker Compose 在开始之前,需要先安装Docker和Doc

    2024年02月13日
    浏览(50)
  • 如何使用 Docker 启动 MySQL 服务,并从安装 Docker 开始进行

    Docker 是一款非常流行的应用容器化平台,可以快速的创建、打包、交付和运行应用程序。它极大地简化了应用程序的部署和管理,特别适用于云上运行的应用。本文将介绍如何使用 Docker 启动 MySQL 服务,并从安装 Docker 开始进行。 第一步:安装 Docker 首先需要在你的系统上安

    2024年02月16日
    浏览(34)
  • 记一次正式环境升级docker服务基础进行版本异常

    因为服务的httpd和tomcat基础镜像版本比较旧,漏洞多,需要升级至最新版本。在本地环境和测试环境都是直接将dockerfile中的FROM基础镜像升级至最新: httpd:由httpd:2.4.52-alpine升级至httpd:2.4.57 tomcat:由4年前的tomcat:last升级至tomcat:9-jdk21-openjdk-slim 但是在正式环境docker容器都启动失

    2024年02月07日
    浏览(42)
  • 解密数仓的SQL ON ANYWHERE技术

    本文分享自华为云社区《GaussDB DWS的SQL ON ANYWHERE技术解密》,作者:tooooooooooomy。 适用版本:【8.1.1(及以上)】 查询分析是大数据要解决的核心问题之一,虽然大数据相关的处理引擎组件种类繁多,并提供了丰富的接口供用户使用,但相对传统数据库用户来说,SQL语言依然

    2024年04月08日
    浏览(25)
  • 【Docker】docker run 命令详解

    Docker运行命令是在Docker中启动容器的主要方式之一。它是Docker CLI(命令行界面)中的基本命令之一,用于启动容器。 在这个语法中,“OPTIONS”包含了一些参数,用于配置和控制容器的各种方面。“IMAGE”是要使用的Docker镜像。“COMMAND”是在容器内执行的命令,“ARG”是该命

    2024年02月16日
    浏览(38)
  • docker run 与 docker start区别

    说明, docker run 和docker start 都是运行一个docker容器, 区别在于 1. docker run (使用镜像image) 2. docker start (使用容器ID或是容器NAMES)

    2024年02月14日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包