当前位置: 首页 > news >正文

网站建设面试表微信长图的免费模板网站

网站建设面试表,微信长图的免费模板网站,做电商需要知道的几个网站,外贸网站 语言文章目录 Docker一、Docker安装#xff08;Linux#xff09;二、Docker概念三、Docker常用命令四、数据卷五、自定义镜像六、网络七、DockerCompose Docker Docker是一个开源平台#xff0c;主要基于Go语言构建#xff0c;它使开发者能够将应用程序及其依赖项打包到一个轻… 文章目录 Docker一、Docker安装Linux二、Docker概念三、Docker常用命令四、数据卷五、自定义镜像六、网络七、DockerCompose Docker Docker是一个开源平台主要基于Go语言构建它使开发者能够将应用程序及其依赖项打包到一个轻量级、可移植的容器中。容器技术的核心概念是将操作系统和应用程序隔离在一个容器内这极大地提高了效率和灵活性。 与传统的虚拟化技术相比Docker提供了一种更轻量级的方案。它是一个进程级别的虚拟化可以隔离文件、进程和资源等而无需模拟整个操作系统。此外Docker容器可以在几乎任何主流的Linux机器上运行无论是物理机、虚拟机还是云服务器。 一、Docker安装Linux 如果linux中没有安装过yum工具首先要安装一个yum工具 yum install -y yum-utils接下来配置一个Docker的安装源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo然后执行命令安装Docker yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin接下来启动一下Docker # 启动Docker systemctl start docker# 停止Docker systemctl stop docker# 重启 systemctl restart docker# 设置开机自启 systemctl enable docker# 执行docker ps命令如果不报错说明安装启动成功 docker ps由于Docker的仓库在国外下载镜像会非常慢所以需要配置一个阿里云镜像加速。 二、Docker概念 当我们利用 Docker 安装应用时Docker 会自动搜索并下载应用镜像 (image) 。镜像不仅包含应用本身还包含应用运行所需要的环境、配置、系统函数库。 Docker 会在运行镜像时创建一个隔离环境称为容器 (container)。容器可以形象理解为独属于docker的阉割版微型操作系统。它有自己的内存空间有自己的文件系统甚至有自己的网络空间。 镜像仓库存储和管理镜像的平台。Docker 官方维护了一个公共仓库 Docker.Hub。开发者可以将自己的应用的镜像上传到这个公共仓库之中比如MySQL、redis等都在公共仓库上有自己的镜像。 镜像就相当于一个“免安装”的软件只需要下载下来就可以直接启动。不用关心各种配置、依赖、操作系统的差异。 三、Docker常用命令 所有的命令都可以通过--help参数查看它的参数列表以及用法。 docker pull 镜像名称:版本号从docker.pub中拉取对应镜像 docker images查看所有的本地镜像 docker rmi 镜像名:版本删除对应镜像 docker save 参数 镜像名:版本将镜像打包到本地 参数-o 镜像名.tar把镜像保存成tar文件或者也可以tar.gz打包压缩 docker load 参数将save的镜像tar包重新加载为镜像文件 参数-i tar文件名 docker run 参数 镜像名:版本创建容器并运行一个镜像如果没有镜像则会自动pull镜像 参数-d让容器在后台运行参数--name给容器起个名字必须唯一。参数-p 宿主机端口号:容器端口号将创建的容器的端口号3306映射到宿主机的端口号3307。容器拥有自己的IP地址但是docker的宿主机之外的主机是无法看到容器的。所以只能通过让外部主机访问宿主机再让宿主机将请求映射到Docker容器的端口中。参数-e keyvalue设置环境变量这个是由镜像的制作者决定的。使用者直接上docker.pub直接查看有哪些环境变量按需要配置即可。可以配置多个-e参数。要在容器中运行的镜像名字镜像名称一般由两部分组成[repository]:[tag]镜像名:版本。比如mysql:5.7。如果没有指定版本号默认是latest的镜像。 反斜杠是为了美观进行的换行不加也可。 docker stop 容器名停止容器中线程的运行。比如如果容器中运行的是MySQL会停掉MySQL。 docker start 容器名启动停止的容器 docker ps查看各个容器的状态 docker inspect 容器名查看具体容器的状态比如它的数据卷、网络配置等等。 docker rm 容器名删除容器 docker logs 容器名查看容器运行日志 docker exec -it 容器名 bash进入容器内部使用命令行进行交互 四、数据卷 虽然可以使用命令进入容器中但是由于容器只是一个最小化的系统环境它只具备运行镜像所需的环境是不会具备vim等编辑器的所以容器中的文件无法进行修改。 如果有一个需求 应该如何修改容器中的html文件呢这就需要用到数据卷了。 数据卷volume是一个虚拟目录是容器目录与宿主机目录映射的桥梁。想要更改容器中的文件只能通过数据卷进行修改。 具体来说需要创建一个数据卷然后将数据卷挂载到容器目录和宿主机目录之后容器目录和宿主机目录就建立起了映射对宿主机目录做修改都能映射到容器所在目录。 创建、查看、删除数据卷的命令如图。 应该如何挂载数据卷到容器目录和宿主机目录呢当创建容器的时候就需要同时挂载数据卷到容器目录和宿主机目录了否则创建完容器之后是无法进行挂载的。在创建容器docker run时直接加上参数-v 数据卷名:容器内目录完成容器目录数据卷的挂载这里没有宿主机目录是因为docker默认根据容器目录创建了一个对应的宿主机目录并将数据卷挂载到该目录了。可以使用docker inspect 数据卷名查看数据卷挂载的宿主机目录然后进入该目录进行操作。 上边宿主机目录是docker自动指定的实际上也可以自己手动指定。 如果指定本地目录数据卷的名称默认为该本地目录的名称。例如如果要将本地的/path/to/local/dir目录挂载到容器中则数据卷的名称为/path/to/local/dir。 五、自定义镜像 Java项目可以通过docker进行部署这就需要会使用docker制造一个镜像。 镜像就是包含了应用程序、程序运行的系统函数库、运行配置等文件的文件包。构建镜像的过程其实就是把上述文件打包的过程。 传统部署一个Java应用通常需要 准备一个linux服务器安装jre并配置环境变量拷贝jar包运行jar包 看似镜像中只需要jre和jar包就足够了但是Java程序需要jre中的jvm去执行jvm是需要跟操作系统进行交互的所以还需要准备好具体的操作系统环境。具体来说是操作系统的系统函数。问题来了需要用到哪些系统函数呢 可以使用一个笨方法直接把整个操作系统的所有系统函数塞到镜像中这样就绝对没问题。 所以制作一个镜像的步骤如下 准备一个linux运行环境系统函数库debian、ubuntu、centos都行安装jre并配置环境变量jar包一个操作系统的脚本启动这个脚本能够自动运行java -jar命令启动jar包 这四个部分的内容事实上并不会混合在一起放到镜像中去当然也可以这样做但是混在一起并不明智难道所有的东西都要制作者自己去找吗。而是每个部分都作为一个子镜像有些子镜像已经有别人做好了比如linux的环境四个子镜像组合成为一个镜像。在docker中将这四部分内容称为有四个层layer。 最底下的几层称为**基础镜像。**这些镜像都是别人已经做好的通用镜像开发者可以基于这些镜像来制作自己的镜像。 最上的层称为入口。一般是程序启动的脚本和参数。 开发者只需要描述自己想要制作的镜像的结构基础镜像、中间层、入口docker就会自动完成整个镜像的构建。 需要在Dockfile文件中使用指令来描述镜像结构。常见指令如图 这并不是所有的命令如果有更多的需求可以查看官方文档。 可以基于Ubuntu的基础镜像自己搭建一个Java应用的镜像。当然也有更加方便的镜像已经把Java的所有的环境都配置好只需要把jar包塞到镜像之中然后配置入口就可以了。 当编写好了Dockfile可以利用一个命令来将Dockfile构建成镜像 docker build -t 镜像名:版本 Dockerfile所在目录(如果在当前目录指定为.)之后就是将这个镜像使用docker save打包成tar然后发给另一个开发者然后另一个开发者使用docker load加载镜像然后使用docker run创建容器并运行镜像即可。 六、网络 docker把Java应用成功部署了而Java应用是需要用到redis、MySQL等数据库的。redis、MySQL可以做成镜像运行在容器之中。redis和MySQL的容器都有一个ip地址它们的ip地址是由docker分配的。启动一个镜像docker会给该镜像的容器分配一个ip地址第二次启动同一个镜像时docker会再次给该镜像的容器分配一个ip地址前后两次分配的ip地址有可能不同。 现在问题来了Java应用程序中似乎不能知道redis和MySQL的ip地址。 docker是通过自定义网络来解决这个问题的。各个容器之间通过容器名来访问彼此由docker通过容器名获取该容器的ip地址然后访问该容器而不是直接通过ip来访问彼此。 docker的自定义网络的常用命令如下 值得注意的是每一个容器在创建的时候都会默认指定给一个默认网络bridge在这个网络中是不能够通过容器名访问容器的。只能通过ip地址。只有通过自定义网络才能具备容器名访问的功能。 也可以通过创建一个容器的时候docker run通过参数--network 自定义网络名直接将该容器加入自定义网络。使用这种方式会将默认网络直接覆盖为自定义网络。 在一个springboot工程中如果它之后要使用docker进行部署那么配置文件中的mysql数据源信息也要记得修改数据源的主机应该写为容器的名字而不是ip地址。 一般在本地进行开发的时候此时还没有进入docker环境所以会使用本机MySQL的ip地址。 在部署的时候如果要使用docker进行部署则必须要使用容器名代替配置文件中的ip地址。 七、DockerCompose 如果现在有Java应用程序的镜像MySQL的镜像redis的镜像包括一些微服务中间件的镜像那么手动部署起来会非常麻烦。 如果手动进行部署会非常麻烦这时候就出现了一种技术能够将相互关联的镜像同一部署提高部署的效率。这就是DockerCompose。 DockerCompose 通过一个单独的 docker-compose.yml 模板文件 (YAML 格式来定义一组相关联的应用容器帮助我们实现多个相互关联的 Docker 容器的快速部署。 在DockerCompose之中各个相互关联的容器的整体称为项目project每一个容器称为一个服务service。各个服务写在一个yml文件之中之后通过该文件进行统一部署。 实际上项目文件之中写的内容跟docker run差不多。docker run的各种参数实际上就是在描述容器的启动状态所以项目文件中的每一个服务也需要有这些信息。将来读取该文件进行部署的时候实际上就是自动化运行了多个docker run命令。 yml文件之中还可以自定义镜像仍然需要手动制作Dockerfile不过免去了生成镜像的命令。 yml文件之中还可以创建自定义网络。其他容器需要用到自定义网络只需要写上在yml文件中创建的自定义网络名即可。 最后DockerCompose文件制作完毕执行以下命令即可将所有容器一次性创建 docker compose [options] [command]以下是docker compose的常用命令有一个-d参数也很常用能够让创建的容器在后台运行 所以最后开发者要使用docker部署一整个项目只需要写Dockerfile文件然后再写DockerCompose文件即可。 当然docker的功能还远不止如此。以上学习的内容都仅限于单个服务器中如果需要集群部署docker也是可以做到的。不过作为一个后端开发人员以上知识就足够了更加深入的docker知识需要运维人员去了解。
http://www.hkea.cn/news/14314943/

相关文章:

  • 乔括云智能建站软件开发项目管理书籍
  • 嘉兴网站建设托管物流网站建设公司
  • 企业网站建设的收获成都网站制作scgckj
  • 怎样只做自己的网站自己电脑做电影网站
  • 榆林网站制作公司网站的备案号是如何链接的
  • 北京网站设计公司兴田德润简介wordpress文章首页不显示怎么办
  • 人人商城网站开发成都网站建站推广
  • 深圳三站合一网站建设互联网推广属于什么经营范围
  • 百度手机网站制作信息流广告投放
  • 做企业网站市场分析vs2015做网站
  • 在哪注册网站东风地区网站建设价格
  • 河南省建设监理网站重庆最新网站备案
  • 国际物流网站建设男人互做网站
  • 阿里巴巴网站图片怎么做的优秀的品牌策划案例
  • 做的新网站做百度推广怎么弄做网站要有哪些知识
  • 廊坊网站关键词推广wordpress的文件权限设置
  • 哪里 教做网站带维护做php网站开发能赚钱吗
  • dede网站地图栏目如何上传文件代刷网站建设
  • 深圳建设网站哪家最好南宁3及分销网站制作
  • 宁波信誉好品牌网站设计地址手机怎么管理wifi踢人
  • 昆山兼职做网站wordpress例行维护
  • 青岛seo网站建设济南做网站最好的单位
  • 网站建设招标采购需求paypal网站做外贸
  • 个人备案的网站名称订阅号上链接的网站怎么做的
  • 类似淘宝的网站怎么做宣城市建设银行网站
  • 河南省建设协会网站做企业网站的第一步需要啥
  • 织梦网站专题模板下载几百块钱可以做网站吗
  • 兰州网站移动端优化现在做推广的新渠道有哪些
  • 网站营销优化方案上海市场营销公司
  • WordPress开网站很慢新闻排版设计用什么软件