您的位置:首页 > 房产 > 家装 > 网页设计学习内容_进口国际博览会上海_网络营销首先要_推广网络推广平台

网页设计学习内容_进口国际博览会上海_网络营销首先要_推广网络推广平台

2024/12/22 18:25:47 来源:https://blog.csdn.net/m0_51244077/article/details/144410375  浏览:    关键词:网页设计学习内容_进口国际博览会上海_网络营销首先要_推广网络推广平台
网页设计学习内容_进口国际博览会上海_网络营销首先要_推广网络推广平台

文章目录

    • docker 概要
      • Docker基础应用相关命令回顾
      • 项目打包/部署/启用/关闭/自启动/进程监听等流程
    • docker compose
      • 基础用法
      • 项目应用
      • 其他特性
    • docker compose 实例

docker 概要

Docker基础应用相关命令回顾

  1. 容器生命周期管理命令
    • run:用于创建并启动新容器,有众多参数可指定容器运行的各种配置,比如端口映射(-p-P)、交互模式(-i-t)、后台运行(-d)、设置环境变量(-e--env)、指定网络模式(--net)等,示例如下:
      • 以后台模式启动名为mynginxnginx:latest镜像容器:docker run --name mynginx -d nginx:latest
      • 进行端口映射及目录挂载启动nginx:latest镜像容器:docker run -p 8080:80 -v /host/data:/container/data -d nginx:latest
    • startstoprestart:分别用于启动已停止的容器、停止正在运行的容器、重启容器,例如:
      • 启动已停止的mynginx容器:docker start mynginx
      • 停止运行中的mynginx容器:docker stop mynginx
      • 重启mynginx容器:docker restart mynginx
    • kill:杀掉正在运行的容器,可按容器名或容器ID操作,如:docker kill tomcat7docker kill 65d4a94f7a39
    • rm:用于删除一个或多个容器,可强制删除、连带删除挂载的数据卷、删除所有已停止的容器等,例如:
      • 强制删除db01db02容器:docker rm -f db01 db02
      • 删除nginx01容器并删除其挂载的数据卷:docker rm -v nginx01
      • 删除所有已停止的容器:docker rm $(docker ps -a -q)
    • create:创建新容器但不启动它,如:docker create --name mynginx nginx:latest
    • exec:在运行的容器中执行命令,有分离模式、保持标准输入打开、分配伪终端等参数选项,示例:
      • mynginx容器中以交互模式执行/root/nginx.sh脚本:docker exec -it mynginx /bin/sh /root/nginx.sh
    • pauseunpause:分别用于暂停和恢复容器中所有的进程,例如暂停db01容器服务:docker pause db01,恢复其服务:docker unpause db01
  2. 容器查看相关命令
    • ps:列出容器,有多个可选参数用于按不同条件过滤、显示内容,像显示所有容器(-a)、列出最近创建的n个容器(-n)等,例如:
      • 列出所有在运行的容器信息:docker ps
      • 列出最近创建的5个容器信息:docker ps -n 5
    • inspect:获取容器/镜像的元数据,可指定返回值的模板文件等参数,比如获取正在运行的容器mymysql的IP:docker inspect --format='{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql
    • top:查看容器中运行的进程信息,支持ps命令参数,例如查看mymysql容器的进程信息:docker top mymysql
    • stats:监控容器资源消耗情况,默认每隔1秒钟刷新输出内容,也可通过参数只输出当前状态、指定要显示的容器等,如:docker statsdocker stats --no-streamdocker stats --no-stream 容器ID/容器名
    • events:获取实时事件,能根据条件过滤、指定时间范围显示相关事件,例如显示docker 2016年7月1日后的所有事件:docker events --since="2016-07-01"
    • logs:获取容器的日志,可跟踪日志输出、指定开始时间、显示时间戳、限定显示最新条数等,例如跟踪查看mynginx容器的日志输出:docker logs -f mynginx
  3. 容器文件系统相关命令
    • export:将文件系统作为一个tar归档文件导出到STDOUT,可指定输出到文件,如:docker export -o mysql-date +%Y%m%d.tar a404c6c174a2
    • port:列出指定容器的端口映射情况,如查看mymysql容器的端口映射:docker port mymysql
    • commit:从容器创建一个新的镜像,需指定提交的镜像作者、说明文字等参数,例如:docker commit -a "guodong" -m "my db" a404c6c174a2 mymysql:v1
    • cp:用于容器与主机之间的数据拷贝,有保持链接等参数选项,比如将主机目录拷贝到容器、将容器目录拷贝到主机等操作示例。
    • diff:检查容器里文件结构的更改,如查看mymysql容器的文件结构更改:docker diff mymysql
  4. 镜像仓库相关命令
    • loginlogout:分别用于登录、登出Docker镜像仓库,可指定用户名、密码以及仓库地址,例如登录到Docker Hub:docker login -u 用户名 -p 密码,登录到私有远程镜像仓库:docker login harbor.guodong.io,登出Docker Hub:docker logout
    • pull:从镜像仓库中拉取或更新指定镜像,能拉取所有标记镜像、指定系统架构的镜像等,例如从Docker Hub下载java最新版镜像:docker pull java,下载指定架构的nginx:latest镜像:docker pull --platform=arm64 nginx:latest
    • push:将本地的镜像上传到镜像仓库,要先登录到镜像仓库,如上传本地镜像myapache:v1到镜像仓库中:docker push myapache:v1
    • search:从Docker Hub查找镜像,可按条件过滤列出指定的镜像,例如查找所有镜像名包含java且收藏数大于10的镜像:docker search -f stars=10 java
  5. 本地镜像管理命令
    • images:列出本地镜像,有多个参数可按不同要求显示镜像信息,像列出本地所有镜像(-a)、显示满足条件的镜像(-f)等,例如查看本地镜像列表:docker images
    • rmi:删除本地一个或多个镜像,可强制删除,如强制删除本地镜像guodong/ubuntu:v4docker rmi -f guodong/ubuntu:v4
    • tag:标记本地镜像,将其归入某一仓库,例如将ubuntu:15.10标记为runoob/ubuntu:v3镜像:docker tag ubuntu:15.10 runoob/ubuntu:v3
    • build:使用Dockerfile创建镜像,有众多参数可设置创建时的变量、网络模式、内存限制等各种配置,例如使用当前目录的Dockerfile创建镜像并指定标签:docker build -t runoob/ubuntu:v1.
    • history:查看指定镜像的创建历史,有格式化打印、显示完整记录等参数选项,比如查看本地镜像guodong/ubuntu:v3的创建历史:docker history guodong/ubuntu:v3
    • save:将指定镜像保存成tar归档文件,需指定输出到的文件,如:docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
    • load:导入使用docker save命令导出的镜像,例如:docker load --input fedora.tar
    • import:从归档文件中创建镜像,要指定应用的docker指令、提交说明文字等,如从my_ubuntu_v3.tar创建镜像并命名:docker import my_ubuntu_v3.tar runoob/ubuntu:v4
  6. 基础版本信息命令
    • info:显示Docker系统信息,包括镜像和容器数等,使用命令:docker info
    • version:显示Docker版本信息,通过命令:docker version查看。

项目打包/部署/启用/关闭/自启动/进程监听等流程

  • 打包:在Docker中,项目打包通常是通过编写Dockerfile文件来定义镜像的构建过程,在Dockerfile中可以指定基础镜像、安装项目依赖、拷贝项目文件、设置环境变量、指定启动命令等内容,然后使用docker build命令基于Dockerfile构建出项目对应的镜像,这就完成了项目的打包操作,例如一个简单的Python项目的Dockerfile可能如下:
FROM python:3.8
WORKDIR /app
COPY requirements.txt.
RUN pip install -r requirements.txt
COPY..
CMD ["python", "app.py"]

接着执行docker build -t my_project_image:v1.来构建镜像(假设此Dockerfile在项目根目录下)。

  • 部署:部署项目时,先确保所需的镜像存在(可以通过docker pull拉取公共镜像或者自己构建好镜像),然后使用docker run命令按照项目需求启动容器,进行端口映射、挂载数据卷等配置,使项目在容器中运行起来,对外提供服务。比如部署一个Web应用,将容器内的80端口映射到主机的8080端口运行:docker run -d -p 8080:80 my_web_app_image
  • 启用:对应容器相关就是启动容器,使用docker start命令针对已停止的容器启动让其运行,例如docker start my_container,对于项目而言就是启动容器让打包在里面的项目开始提供相应服务。
  • 关闭:通过docker stop命令可以停止正在运行的容器来关闭项目服务,像docker stop my_container,项目所在容器停止运行后就不再对外提供服务了。
  • 自启动:Docker本身可以通过一些方式配置容器随宿主机启动而自动启动,一种常见的是使用docker run时添加--restart=always参数,例如docker run --restart=always -d -p 8080:80 my_web_app_image,这样在宿主机重启后,对应的容器会自动启动,进而项目自动启动运行。另外,也可以通过一些系统层面的服务管理工具(如systemd等,在Linux系统下)结合相关的脚本配置来实现更复杂的自启动管理。
  • 进程监听:在Docker中可以通过docker top命令查看容器内运行的进程信息来了解项目相关进程的情况,也可以使用docker stats命令监控容器资源使用情况,间接了解项目进程对资源的占用情况以及是否正常运行等;还可以结合docker logs命令查看容器日志,从日志输出中分析项目进程的运行状态、是否有报错等信息来实现对项目进程的监听。

docker compose

以下是对Docker Compose基础用法及项目应用等常用信息的总结整理:

基础用法

  1. 文件结构与配置
    • docker-compose.yml文件:这是核心配置文件,是一个YAML格式文件。
      • version:指定文件版本,不同版本语法和功能有差异,如3.8等常用版本。
      • services:定义应用中的各个服务。
        • image:指定服务使用的Docker镜像,例如image: nginx:latest
        • build:用于构建镜像的配置,包含context(Dockerfile所在目录)和dockerfile(Dockerfile文件名),如build: {context:./app, dockerfile: Dockerfile}
        • ports:设置端口映射,格式为"主机端口:容器端口",像- "80:80"
        • volumes:挂载卷,可实现数据持久化或主机与容器间目录共享,如-./html:/usr/share/nginx/html
        • networks:指定服务使用的网络,如- webnet
        • environment:配置环境变量,如environment: {POSTGRES_DB: mydatabase, POSTGRES_USER: user, POSTGRES_PASSWORD: password}
        • depends_on:定义服务依赖关系,确保相关服务按顺序启动,例如depends_on: - db
      • volumes:定义数据卷,如db_data:,用于持久化数据,防止容器销毁导致数据丢失。
      • networks:定义网络,Compose默认有bridge网络,也可自定义,如webnet:
  2. 命令操作
    • 启动服务
      • docker-compose up:在前台启动所有定义在docker-compose.yml文件中的服务,并显示日志输出。
      • docker-compose up -d:在后台启动服务,使容器在后台运行并返回终端控制权。
    • 停止服务docker-compose down,停止并删除所有由docker-compose启动的容器,清理相关资源。
    • 查看服务状态docker-compose ps,列出所有由docker-compose启动的容器及其状态,包括容器名、命令、状态、端口等信息。
    • 查看服务日志docker-compose logs,可查看各个服务的日志信息,有助于排查问题。
    • 重新构建服务docker-compose build,根据docker-compose.yml文件中的build配置重新构建服务对应的镜像。

项目应用

  1. 微服务架构实现:适用于现代微服务架构应用程序,可将应用拆分为多个独立服务(如数据库服务、Web服务、缓存服务等),每个服务运行在独立容器中,便于独立开发、部署和扩展。例如一个博客应用可拆分为前端Web服务器、后端API服务器、数据库服务器等分别在不同容器中运行。
  2. 依赖管理:能轻松定义和管理复杂应用程序的依赖关系。如Web应用依赖Web服务器、数据库和缓存系统等,通过docker-compose.yml文件中的depends_on等配置确保所有组件按预期启动和运行。
  3. 简化开发和测试环境:保证开发环境与生产环境的一致性。通过docker-compose可以定义统一的开发、测试和生产环境配置,减少因环境差异导致的问题,使在本地开发测试的环境与部署到服务器上的环境尽量相同。
  4. 网络配置优势:自动为所有定义的服务创建专用网络,服务之间可直接通过服务名互相通信,无需复杂的网络设置。例如在docker-compose.yml文件中定义的服务,在同一网络下,web服务可直接通过db服务名访问数据库服务,而不需要知道数据库容器的具体IP地址。

其他特性

  1. 使用.env文件设置环境变量:可以创建.env文件设置环境变量,在docker-compose.yml文件中通过${变量名}引用,便于在不同环境中灵活配置,如设置数据库连接信息等环境变量,避免在docker-compose.yml文件中硬编码敏感信息。
  2. 多个Compose文件使用:在复杂应用中,可使用多个Compose文件,如docker-compose.yml作为基本配置,docker-compose.override.yml用于覆盖或扩展基本配置。启动时通过docker-compose -f docker-compose.yml -f docker-compose.override.yml up指定多个文件来灵活构建不同环境(如开发环境和生产环境)的应用配置。

docker compose 实例

以下是一个较为完整的docker-compose.yml项目应用示例文件,用于构建一个包含Web应用(使用Node.js + Express)、数据库(MySQL)以及缓存(Redis)的应用架构:

version: '3.8'
services:# Web应用服务web:build:context:.dockerfile: Dockerfile.webports:- "3000:3000"volumes:-.:/appnetworks:- app_networkdepends_on:- db- redisenvironment:DB_HOST: dbREDIS_HOST: redis# 数据库服务db:image: mysql:8.0ports:- "3306:3306"volumes:- db_data:/var/lib/mysqlnetworks:- app_networkenvironment:MYSQL_ROOT_PASSWORD: root_passwordMYSQL_DATABASE: my_database# 缓存服务redis:image: redis:latestports:- "6379:6379"networks:- app_networkvolumes:db_data:networks:app_network:

在上述示例中:

  • version指定了docker-compose文件的版本为3.8
  • services下定义了三个服务:webdbredis
    • web服务通过build指定从当前目录下的Dockerfile.web构建镜像,将主机的3000端口映射到容器内的3000端口,挂载当前目录到容器内的/app目录,连接到app_network网络,依赖dbredis服务,并设置了数据库和缓存的主机环境变量。
    • db服务使用mysql:8.0镜像,映射3306端口,定义db_data数据卷用于持久化数据,连接app_network网络,并设置了MySQL的 root 密码和数据库名等环境变量。
    • redis服务使用redis:latest镜像,映射6379端口并连接app_network网络。
  • volumes定义了db_data数据卷。
  • networks定义了app_network网络,供各个服务之间通信。

你可以根据实际项目需求修改上述示例,例如更改镜像版本、端口映射、环境变量设置等。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com