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

昆明网站建设logovi做网站wamp和xamp

昆明网站建设logovi,做网站wamp和xamp,网络推广是干嘛的可以做吗,怎么做通知维护网站系列文章目录 Docker 概述 Docker getting started 文章目录系列文章目录前言一、容器及镜像的概念二、容器化一个应用三、更新应用四、分享应用五、持久化数据存储volume mount 和 bind mount比较Container volumesbind mounts六、跨多容器的应用七、Docker 其它八、Docker 图…系列文章目录 Docker 概述 Docker getting started 文章目录系列文章目录前言一、容器及镜像的概念二、容器化一个应用三、更新应用四、分享应用五、持久化数据存储volume mount 和 bind mount比较Container volumesbind mounts六、跨多容器的应用七、Docker 其它八、Docker 图形化界面显示总结前言 本文主要包含以下内容 将一个应用放在容器中运行介绍持久化数据存储方式Docker图形化界面显示方法 一、容器及镜像的概念 容器 镜像的可运行实例。通过Docker API or CLI可以创建、启动、停止、移动或删除容器。可在本地、虚拟机、云上运行。便捷(可在任意OS上运行)。与其他容器隔离运行独立的软件、二进制文件、配置。 镜像 提供隔离的、定制化的文件系统也包含配置信息、环境变量等。 二、容器化一个应用 git clone https://github.com/docker/getting-started.git建立Dockerfile 用于指示Docker如何创建镜像 Dockerfile # syntaxdocker/dockerfile:1FROM node:18-alpine WORKDIR /app COPY . . RUN yarn install --production CMD [node, src/index.js] EXPOSE 3000建立容器镜像 docker build -t getting-started .docker build命令通过通过 Dockerfile 建立容器镜像。在此过程中Docker下载了许多“layer”。因为是从node:18-alpine开始的又因本地中没有此镜像需要先下载。 下载完成后指令从Docker中拷贝到应用中并通过yarn安装依赖。CMD指令指定从此镜像启动容器时要运行的默认命令。 最后-t表示给镜像打个标签如getting-started 最后的.表示从当前目录找查Dockerfile文件 启动一个应用容器 docker run -dp 3000:3000 getting-started-d detached模式 -p在主机端口3000与容器端口3000之间创建端口映射没有端口映射将无法访问应用 访问应用 http://localhost:3000通过Docker Dashboard可查看运行中的容器 三、更新应用 上章容器化了一个todo应用。本章将更新应用和容器镜像。stop and remove容器。 src/static/js/app.js 修改 ...- p classNametext-centerNo items yet! Add one above!/p p classNametext-centerYou have no todo items yet! Add one above!/p...docker build docker build -t getting-started .停止移除容器 # 查看运行中的容器 docker ps # 停止容器 docker stop the-container-id # 移除容器 docker rm the-container-id # 停止并移除容器 docker rm -f the-container-idstart the updated app container docker run -dp 3000:3000 getting-started四、分享应用 # 登陆Docker Hub docker login -u YOUR-USER-NAME # 添加tag docker tag getting-started YOUR-USER-NAME/getting-started # push docker push YOUR-USER-NAME/getting-started五、持久化数据存储 容器从镜像的“层”中获取该容器的文件系统即便是从统一镜像实例的两个容器也是隔离的两个容器之间的更改不互通。 # 运行容器并执行命令 bash ...... docker run -d ubuntu bash -c shuf -i 1-10000 -n 1 -o /data.txt tail -f /dev/null # 查看运行中的容器 -a 查看所有容器 docker ps # 在容器中执行命令 docker exec container-id cat /data.txt # 然后再run另一个容器次容器中则无data.txt文件volume mount 和 bind mount比较 Named volumesBind mounts共享文件存放在主机的位置由Docker选择用户决定mount示例 (using --mount)typevolume,srcmy-volume,target/usr/local/datatypebind,src/path/to/data,target/usr/local/data用容器内容填充新卷YN支持卷驱动程序YN Container volumes Volumes可将容器中的某一文件系统路经连接至本地主机上。如果在容器总挂载了该目录其变更也在宿主机上可见。如果我们跨容器重新启动装载相同的目录我们将看到相同的文件。 # create volume docker volume create filename # 在run一个镜像时加上volumevolume文件所在的目录就成了volume目录 docker run -dp 3000:3000 --mount typevolume,srctodo-db,target/etc/todos getting-started # rm上面的容器后再用相同的命令即可实现在多个容器中共享数据# docker volume filename 的存放位置 docker volume inspect todo-db [{CreatedAt: 2022-09-26T02:18:36Z,Driver: local,Labels: {},Mountpoint: /var/lib/docker/volumes/todo-db/_data,Name: todo-db,Options: {},Scope: local} ]bind mounts docker run -it --mount typebind,src$(pwd),target/src ubuntu bashsrc为host的目录target为容器的目录 运行此条命令后 host的$(pwd)目录和 容器的/src目录实时同步 在容器中运行宿主机中正在开发的应用 docker run -dp 3000:3000 \-w /app --mount typebind,src$(pwd),target/app \node:18-alpine \sh -c yarn install yarn run devdp 3000:3000 分离模式指定host和容器的端口映射(用于访问app网页)-w /app 设置命令行的工作目录--mount typebind, src$(pwd), target/app bind mount 宿主机目录(“$(pwd)”)和容器目录(/app)node:18-alpine 使用的镜像sh -c yarn install yarn run dev 容器启动后运行的命令。使用sh(node:18-alpine没有bash) 运行 yarn install 安装包然后运行 yarn run dev 启动 该软件。如果查看下 package.jsondev脚本启动了nodemon docker logs -f container-id nodemon src/index.js [nodemon] 2.0.20 [nodemon] to restart at any time, enter rs [nodemon] watching dir(s): *.* [nodemon] starting node src/index.js Using sqlite database at /etc/todos/todo.db Listening on port 3000六、跨多容器的应用 APP放在一个容器中MySQL放在另一个容器中 默认情况下容器与其它容器、进程是隔离的。多个容器之间可通过网络进行通讯同一个网络下的容器才可进行通讯。 创建网络 docker network create app name todo-app启动MySQL容器并将其附着在网络上 docker run -d \--network todo-app --network-alias mysql \-v todo-mysql-data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORDsecret \-e MYSQL_DATABASEtodos \mysql:8.0验证2是否成功 docker exec -it mysql-container-id mysql -u root -pmysql SHOW DATABASES; --------------------| Database |--------------------| information_schema || mysql || performance_schema || sys || todos |--------------------5 rows in set (0.00 sec) mysql exit连接MySQL 启动一个新的容器连接到同一个network 此处用到的image为 nicolaka/netshoot docker run -it --netword netword-file imagenamedP dP dP 88 88 88 88d888b. .d8888b. d8888P .d8888b. 88d888b. .d8888b. .d8888b. d8888P 88 88 88ooood8 88 Y8ooooo. 88 88 88 88 88 88 88 88 88 88. ... 88 88 88 88 88. .88 88. .88 88 dP dP 88888P dP 88888P dP dP 88888P 88888P dP Welcome to Netshoot! (github.com/nicolaka/netshoot) 找到 hostname为 mysql的IP dig mysql; DiG 9.18.11 mysql ;; global options: cmd ;; Got answer: ;; -HEADER- opcode: QUERY, status: NOERROR, id: 38459 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0;; QUESTION SECTION: ;mysql. IN A;; ANSWER SECTION: mysql. 600 IN A 172.18.0.2;; Query time: 3 msec ;; SERVER: 127.0.0.11#53(127.0.0.11) (UDP) ;; WHEN: Tue Feb 14 13:52:52 UTC 2023 ;; MSG SIZE rcvd: 44 其中mysql不仅仅是一个有效的hostnameDocker还会把他解析成IP地址即--network-alias mysql与该IP有映射关系。 也就是说应用只需要连接到hostname为 mysql 的容器即可实现容器间通讯。 将APP连接到MySQL 在/app目录下 docker run -dp 3000:3000 \-w /app -v $(pwd):/app \--network todo-app \-e MYSQL_HOSTmysql \-e MYSQL_USERroot \-e MYSQL_PASSWORDsecret \-e MYSQL_DBtodos \node:18-alpine \sh -c yarn install yarn run dev查看进度 docker logs -f container-id 查看数据库 docker exec -it mysql-container-id mysql -p todosmysql select * from todo_items; ------------------------------------------------------- | id | name | completed | ------------------------------------------------------- | f207cb07-c947-4d37-aef0-4b0dc50044d5 | abc | 0 | | d1e7dc53-fb06-4001-96a5-a5dc142e90ba | dev | 1 | | 8279b8a3-383b-4be4-bd4b-002a1111b44e | sdf | 0 | ------------------------------------------------------- 3 rows in set (0.01 sec) 七、Docker 其它 检查是否安装了Docker 组件 docker compose versionDocker 组件可帮助快速构建跨容器的应用配置好后只需一条命令即可其多多容器应用。 其它 # 扫描docker 镜像的漏洞 docker scan image-name# 查看镜像的layers docker image history image-name# 通过Layer caching加速镜像的构建等八、Docker 图形化界面显示 把docker镜像看做一台没配显示器的电脑程序可以运行但是没地方显示。 而linux目前的主流图像界面服务X11又支持客户端/服务端Client/Server的工作模式。 只要在容器启动的时候将『unix:端口』或『主机名:端口』共享给dockerdocker就可以通过端口找到显示输出的地方和linux系统共用显示。 # 安装x11界面服务 apt-get install x11-xserver-utils # 为所有用户开放权限 xhost # 在启动容器 docker run -it \-v /tmp/.x11-unix:/tmp/.x11-unix \-e DISPLAYunix$DISPLAY -e GDK_SCALE \-e GDK_DPI_SCALE --nethost ubuntu /bin/bash然后安装个小程序测试是否成功 # apt-get update apt-get install xarclock xarclock总结 #mermaid-svg-sQUfy7FXVrz2Sh3G {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-sQUfy7FXVrz2Sh3G .error-icon{fill:#552222;}#mermaid-svg-sQUfy7FXVrz2Sh3G .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-sQUfy7FXVrz2Sh3G .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-sQUfy7FXVrz2Sh3G .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-sQUfy7FXVrz2Sh3G .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-sQUfy7FXVrz2Sh3G .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-sQUfy7FXVrz2Sh3G .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-sQUfy7FXVrz2Sh3G .marker{fill:#333333;stroke:#333333;}#mermaid-svg-sQUfy7FXVrz2Sh3G .marker.cross{stroke:#333333;}#mermaid-svg-sQUfy7FXVrz2Sh3G svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-sQUfy7FXVrz2Sh3G .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-sQUfy7FXVrz2Sh3G .cluster-label text{fill:#333;}#mermaid-svg-sQUfy7FXVrz2Sh3G .cluster-label span{color:#333;}#mermaid-svg-sQUfy7FXVrz2Sh3G .label text,#mermaid-svg-sQUfy7FXVrz2Sh3G span{fill:#333;color:#333;}#mermaid-svg-sQUfy7FXVrz2Sh3G .node rect,#mermaid-svg-sQUfy7FXVrz2Sh3G .node circle,#mermaid-svg-sQUfy7FXVrz2Sh3G .node ellipse,#mermaid-svg-sQUfy7FXVrz2Sh3G .node polygon,#mermaid-svg-sQUfy7FXVrz2Sh3G .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-sQUfy7FXVrz2Sh3G .node .label{text-align:center;}#mermaid-svg-sQUfy7FXVrz2Sh3G .node.clickable{cursor:pointer;}#mermaid-svg-sQUfy7FXVrz2Sh3G .arrowheadPath{fill:#333333;}#mermaid-svg-sQUfy7FXVrz2Sh3G .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-sQUfy7FXVrz2Sh3G .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-sQUfy7FXVrz2Sh3G .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-sQUfy7FXVrz2Sh3G .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-sQUfy7FXVrz2Sh3G .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-sQUfy7FXVrz2Sh3G .cluster text{fill:#333;}#mermaid-svg-sQUfy7FXVrz2Sh3G .cluster span{color:#333;}#mermaid-svg-sQUfy7FXVrz2Sh3G div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-sQUfy7FXVrz2Sh3G :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}buildrunstart, stop, rmregistryimage容器#mermaid-svg-ASkBHMhtwt5ZxTZQ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .error-icon{fill:#552222;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .marker.cross{stroke:#333333;}#mermaid-svg-ASkBHMhtwt5ZxTZQ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .cluster-label text{fill:#333;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .cluster-label span{color:#333;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .label text,#mermaid-svg-ASkBHMhtwt5ZxTZQ span{fill:#333;color:#333;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .node rect,#mermaid-svg-ASkBHMhtwt5ZxTZQ .node circle,#mermaid-svg-ASkBHMhtwt5ZxTZQ .node ellipse,#mermaid-svg-ASkBHMhtwt5ZxTZQ .node polygon,#mermaid-svg-ASkBHMhtwt5ZxTZQ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .node .label{text-align:center;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .node.clickable{cursor:pointer;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .arrowheadPath{fill:#333333;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .cluster text{fill:#333;}#mermaid-svg-ASkBHMhtwt5ZxTZQ .cluster span{color:#333;}#mermaid-svg-ASkBHMhtwt5ZxTZQ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ASkBHMhtwt5ZxTZQ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}本地电脑volume, bind容器容器容器network容器
http://www.hkea.cn/news/14328771/

相关文章:

  • 网站开发框架 c闲置物品交易网站怎么做
  • 厦门茶叶公司 网站建设凡科建站登录入口官方正版
  • 又做投资的网站吗网页设计培训心得体会
  • 做咖啡网站高德地图怎么看邮编
  • tool站长工具项目代理
  • 柳州企业网站制作哪家好电子商务网站建设项目范围
  • 买衣服网站排名自助建站最大
  • 专教做蛋糕的网站手机上的编程软件
  • 关键字查询我的网站怎么做宿迁房产网租房信息
  • 建设宠物网站的可行性芭蕉视频app无限次数
  • 临沂网站建设联系方式国内h5网站欣赏
  • 服务器不稳定 如何让百度重新收录网站开发个dapp要多少钱
  • 江苏国龙翔建设网站网页设计评价
  • 做mla网站企业手机网站建设策划
  • 微信公众号做微网站吗做网站小程序多少钱
  • asp建设网站需要了解什么建网站衡水哪家强?
  • 网站网站到底怎么做服装外贸公司大量订单外发
  • 公司设计一个网站揭阳企业建站系统模板
  • 濮阳团购网站建设安卓android下载安装
  • 个人做网站花多少钱企业网站模板中文
  • 做情趣网站违法吗域名哪里注册
  • 看案例网站做平面设计需要学什么软件
  • 木马网站怎么做网站建设教程asp
  • 网站开发项目文档南山做网站公司
  • 网站开发费用算无形资产么哈尔滨网站设计多少钱
  • 响应式网站建设系统好业宝微商城
  • 达川网站制作南宁模板建站
  • 专业网站建设策划西安搬家公司收费标准
  • 深圳市网站制作网站建设解决方案
  • 做地推的网站桂林建设银行招聘网站