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

中山电子商务网站建设公司网站首页怎么制作

中山电子商务网站建设,公司网站首页怎么制作,北京住房与建设部网站首页,wordpress文章归档调用文章目录 Docker简介Linux下安装DockerDocker常用命令Docker网络Docker存储docker-composedockerfile制作镜像私有仓库镜像导入导出参考 Docker简介 定义#xff1a;Docker是一个开源的应用容器引擎优势#xff1a; 一键部署#xff0c;开箱即用#xff1a;容器使用基于im… 文章目录 Docker简介Linux下安装DockerDocker常用命令Docker网络Docker存储docker-composedockerfile制作镜像私有仓库镜像导入导出参考 Docker简介 定义Docker是一个开源的应用容器引擎优势 一键部署开箱即用容器使用基于image镜像的部署模式image中包含运行应用程序所需的一切代码、运行时系统工具、系统库和配置文件一次打包到处运行将容器打包成镜像image已经成为软件交付过程中的标准化格式容器与虚拟机 Linux下安装Docker 其中涉及 docker-ce:服务端docker-ce-cli客户端containerd.io容器运行时docker-compose-plugin: 容器编排的工具 客户端发出指令发送给服务端对容器操作服务端并不直接操作而是交给containerd创建容器 配置国内镜像源加速 在/etc/docker/daemon.json中添加 {registry-mirrors: [https://hub-mirror.c.163.com,https://mirror.baidubce.com] }然后重启服务和docker sudo systemctl daemon-reload sudo systemctl restart dockerDocker常用命令 docker架构 Registry:Docker 镜像仓库地址地址的格式一般是 域名/IP[:端口号]。默认地址是 Docker Hub(docker.io) 仓库名 用户名/软件名。对于 Docker Hub如果不给出用户名则默认为 library也就是官方镜像。 镜像名软件名标签 命令解释docker pull从镜像仓库拉取镜像到本地docker images命令查看本地镜像docker run [可选参数] 镜像名:版本 []拉取并运行镜像可选参数1. 参数将容器的端口映射到宿主机端口-p hostPort:containerPort-p 8080-8090:8080-8090公开端口范围前后必须对应-p 192.168.56.106:8080:80如果宿主机有多个ip可以指定绑定到哪个ip2.--name 定义容器的名称3. -e 声明环境变量4. -d容器在后台运行5. -it 使用交互模式可以在控制台里输入、输出6. --rm**在容器退出时自动删除容器。**一般在使用客户端程序时使用此参数docker start 容器名启动容器docker stop关闭容器docker restart重启容器docker rm删除容器docker exec在运行的容器中执行命令一般配合-it参数使用交互模式docker ps查看正在运行的容器docker ps -a查看所有容器包括正在运行和停止的docker inspect查看容器的信息docker logs查看日志docker cp在容器和宿主机间复制文件 Docker网络 docker自动创建的三个网络 bridge桥接网络: 如果不指定新创建的容器默认将连接到bridge网络。容器和宿主机容器和容器可以相互访问。 host: 容器与宿主机共享网络不需要映射端口即可通过宿主机IP访问。-p选项会被忽略,慎用可能会有安全问题。 none: 禁用容器中所用网络在启动容器时使用。 用户自定义网络桥接网络 创建用户自定义网络 docker network create my-net将已有容器连接到此网络 docker network connect my-net db-mysql创建容器时指定网络。 docker run -it --rm --network my-net mysql:5.7 mysql -h**db-mysql** -uroot -p在用户自定义网络上容器之间可以通过容器名进行访问。 用户自定义网络使用 Docker 的嵌入式 DNS 服务器将容器名解析成 IP。 查看容器IPdocker inspect \ --format{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} my-alpine Docker存储 为了容器的简洁便于恢复和迁移需要将数据存储到容器之外这就是挂载 docker提供的三种存储选项 volume卷 卷存储在主机文件系统分配一块专有存储区域由 Docker在 Linux 上管理并且与主机的核心功能隔离。非 Docker 进程不能修改文件系统的这一部分。卷是在 Docker 中持久保存数据的最佳方式。 创建和挂载卷 docker volume create my-datadocker run -e MYSQL_ROOT_PASSWORD123456 \-v /home/mysql/conf.d/my.cnf:/etc/mysql/conf.d/my.cnf:ro \-v my-data:/var/lib/mysql \-d mysql:5.7 bind mount 绑定挂载 绑定挂载可以将主机文件系统上目录或文件装载到容器中但是主机上的非 Docker 进程可以修改它们同时在容器中也可以更改主机文件系统包括创建、修改或删除文件或目录使用不当可能会带来安全隐患。 -v 绑定挂载将主机上的目录或者文件装载到容器中。绑定挂载会覆盖容器中的目录或文件。 如果宿主机目录不存在docker会自动创建这个目录。但是docker只自动创建文件夹不会创建文件。 例如mysql的配置文件和数据存储目录使用主机的目录。可以将配置文件设置为只读read-only防止容器更改主机中的文件。 docker run -e MYSQL_ROOT_PASSWORD123456 \-v /home/mysql/mysql.cnf:/etc/mysql/conf.d/mysql.cnf:ro \-v /home/mysql/data:/var/lib/mysql \-d mysql:5.7 tmpfs 临时挂载 tmpfs挂载仅存储在主机系统的内存中从不写入主机系统的文件系统。当容器停止时数据将被删除。 docker run -d -it --tmpfs /tmp nginx:1.22-alpinedocker-compose Docker Compose 是 Docker 官方编排Orchestration项目之一负责快速的部署分布式应用。 常用命令 命令解释docker compose up 一键部署启动主要参数1. -f参数手动指定文件2. -p指定前缀docker compose start/stop启动/停止服务docker compose down停止并删除容器不会删除存储卷volume1. -p指定前缀docker compose logs -f查看日志 yaml语法 缩进代表上下级关系缩进时不允许使用Tab键只允许使用空格: 键值对后面必须有空格-列表后面必须有空格[ ]数组#注释{key:value,k1:v1}map| 多行文本块 如果一个文件中包含多个文档 ---表示一个文档的开始 用来建立锚点合并到当前数据用*引用锚点 version: 3.7# Settings and configurations that are common for all containers x-minio-common: minio-commonimage: quay.io/minio/minio:RELEASE.2022-08-13T21-54-44Zcommand: server --console-address :9001 http://minio{1...2}/data{1...2}expose:- 9000- 9001services:minio1:: *minio-commonvolumes:- data1-1:/data1- data1-2:/data2minio2:: *minio-commonvolumes:- data2-1:/data1- data2-2:/data2volumes:data1-1:data1-2:data2-1:data2-2:compose文件结构 docker-compose.yml通常需要包含以下几个顶级元素 version 已弃用早期版本需要此元素。 services必要元素定义一个或多个容器的运行参数 在services中可以通过以下元素定义容器的运行参数 ​ image 容器 镜像 ​ ports端口映射 ​ environment环境变量 ​ networks容器使用的网络 ​ volumes容器挂载的存储卷 ​ command容器启动时执行的命令 ​ depends_on定义启动顺序 ​ 复数形式例如ports,networks,volumes,depends_on参数需要传入列表 networks创建自定义网络 volumes 创建存储卷 command支持以下写法 #推荐使用数组或列表的方式 #数组 command:[java,-jar,/usr/local/src/ruoyi-admin.jar] #列表 command: - java- -jar- /usr/local/src/ruoyi-admin.jar# shell命令模式 command: java -jar /usr/local/src/ruoyi-admin.jarenvironment支持如下两种写法 # 使用map environment:MYSQL_DATABASE: exampledbMYSQL_USER: exampleuserMYSQL_PASSWORD: examplepassMYSQL_RANDOM_ROOT_PASSWORD: 1#使用列表 environment:- MYSQL_ROOT_PASSWORD123456- MYSQL_DATABASEry- LANGC.UTF-8depends_on、condition和healthcheck depends_on只能保证容器的启动和销毁顺序不能确保依赖的容器是否ready。 condition有三种状态 service_started容器已启动 service_healthy容器处于健康状态 service_completed_successfully容器执行完成且成功退出退出状态码为0 通过healthcheck加脚本来检查 healthcheck:test: [CMD, mysqladmin, ping, -h, localhost, -u, root, -p$$MYSQL_ROOT_PASSWORD]interval: 10stimeout: 5sretries: 5start_period: 10sservices: ruoyi-app:# docker run --name ruoyi-app \# -p 8080:8080 \# --network ruoyi-net \# -v /home/app/ruoyi-admin.jar:/usr/local/src/ruoyi-admin.jar \# -d openjdk:8u342-jre \# java -jar /usr/local/src/ruoyi-admin.jarimage: openjdk:8u342-jrerestart: alwaysports:- 8080:8080networks:- ruoyi-netvolumes:- /home/app/ruoyi-admin.jar:/usr/local/src/ruoyi-admin.jarcommand: [ java, -jar, /usr/local/src/ruoyi-admin.jar ]healthcheck:test: [CMD, curl, -f, http://localhost:8080]interval: 10stimeout: 5sretries: 5start_period: 10sdepends_on:ruoyi-db:condition: service_healthyruoyi-db:# docker run --name ruoyi-db -p 3303:3306 \# --network ruoyi-net \# -v ruoyi-data:/var/lib/mysql \# -v /home/app/sql:/docker-entrypoint-initdb.d \# -e MYSQL_DATABASEry \# -e MYSQL_ROOT_PASSWORD123456 \# -d mysql:5.7 \# --character-set-serverutf8mb4 --collation-serverutf8mb4_unicode_ci --skip-character-set-client-handshakeimage: mysql:5.7environment:- MYSQL_DATABASEry- MYSQL_ROOT_PASSWORD123456volumes:- ruoyi-data:/var/lib/mysql- /home/app/sql:/docker-entrypoint-initdb.dnetworks:- ruoyi-netcommand:[--character-set-serverutf8mb4,--collation-serverutf8mb4_unicode_ci,--skip-character-set-client-handshake]healthcheck:test: [CMD, mysqladmin, ping, -h, localhost, -u, root, -p$$MYSQL_ROOT_PASSWORD]interval: 10stimeout: 5sretries: 5start_period: 10svolumes:ruoyi-data:networks:ruoyi-net: dockerfile制作镜像 镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本用这个脚本来构建、定制镜像。 常用命令和指令 命令 命令解释docker build [选项] 上下文路径/URL/-构建镜像将客户端的路径指定为上下文路径选项-t指定镜像名docker tag id 镜像名修改镜像名docker image history 镜像名查看镜像构建过程指令 命令解释FROM打包使用的基础镜像WORKDIR相当于cd命令进入容器工作目录COPY将宿主机的文件复制到容器内RUN打包时执行的命令相当于打包过程中在容器中执行shell脚本通常用来安装应用程序所需要的依赖、设置权限、初始化配置文件等CMD指定容器启动程序及参数会被运行容器时的其他指令替代EXPOSE指定容器在运行时监听的网络端口它并不会公开端口仅起到声明的作用公开端口需要容器运行时使用-p参数指定。ENTRYPOINT指定容器启动程序及参数,一般运行容器时不会被替换或覆盖而会追加。如果镜像中ENTRYPOINT和CMD都存在则CMD将作为ENTRYPOINT的参数使用。 制作自己的镜像 根据以下配置制作dockerfile ruoyi-java:image: openjdk:8u342-jreports:- 8080:8080volumes:- /home/app/ruoyi-admin.jar:/usr/local/src/ruoyi-admin.jarcommand: [ java, -jar, /usr/local/src/ruoyi-admin.jar ]networks:- ruoyi-netdepends_on:- ruoyi-db编写dockerfile文件 FROM openjdk:8u342-jre WORKDIR /app COPY ./ruoyi-admin.jar . CMD [java, -jar, ruoyi-admin.jar] EXPOSE 8080image镜像与layer层 image文件由一系列层构建而成dockerfile每一个命令都会生成一个层。每一层都是只读的。 创建容器时会创建一个新的可写层通常称为“容器层”。对正在运行的容器所做的所有更改如写入新文件、修改现有文件和删除文件都将写入容器层而不会修改镜像。 多阶段构建 在构建基于 Java 的应用程序时需要一个 JDK 将源代码编译为 Java 字节码。但是在生产中不需要该 JDK。 多阶段构建可以将生成时依赖与运行时依赖分开减小整个image文件大小 还是上面的例子 FROM maven AS build WORKDIR /source COPY . . RUN mvn packageFROM openjdk:8u342-jre WORKDIR /app COPY --frombuild /source/ruoyi-admin/target/ruoyi-admin.jar . EXPOSE 80 ENTRYPOINT [java,-jar,ruoyi-admin.jar]docker build -t ruoyi-jar:4.7.4 .# project name name: appservices:ruoyi-java:image: ruoyi-jar:4.7.4command: [--server.port8080,--ruoyi.profile/home/ruoyi/uploadPath,--spring.datasource.druid.master.urljdbc:mysql://ruoyi-db:3306/ry?useUnicodetruecharacterEncodingutf8,--spring.datasource.druid.master.usernameroot,--spring.datasource.druid.master.password123456]ports:- 8080:8080networks:- ruoyi-nethealthcheck:test: [ CMD, curl, -f, http://localhost:8080 ]interval: 10stimeout: 5sretries: 5start_period: 10sdepends_on:ruoyi-db:condition: service_healthyruoyi-db:image: mysql:5.7environment:- MYSQL_ROOT_PASSWORD123456- MYSQL_DATABASErycommand: [--character-set-serverutf8mb4,--collation-serverutf8mb4_general_ci,--skip-character-set-client-handshake]volumes:- /home/app/sql:/docker-entrypoint-initdb.d- ruoyi-data:/var/lib/mysqlnetworks:- ruoyi-nethealthcheck:test: [ CMD, mysqladmin, ping, -h, localhost, -u, root, -p$$MYSQL_ROOT_PASSWORD ]interval: 10stimeout: 5sretries: 5start_period: 10svolumes:ruoyi-data:networks:ruoyi-net:私有仓库 在实际工作中很多公司的代码不能上传到公开的仓库中因此我们可以创建自己的镜像仓库。 docker run -d -p 5000:5000 --restart always --name registry registry:2 # 爬取并运行registry并把端口映射为5000 docker image tag ruoyi-java:4.7.4 localhost:5000/ruoyi-java:4.7.4 #修改tag添加registry地址 docker push localhost:5000/ruoyi-java:4.7.4 # 推送镜像 docker pull localhost:5000/ruoyi-java:4.7.4 # 拉取镜像修改/etc/docker/daemon.json,将私有仓库设置为http也可以访问,添加一行。 insecure-registries: [192.168.56.108:5000] #这里地址是本机地址镜像导入导出 命令解释docker save将一个或多个image打包保存的工具选项-o指定保存文件名docker load 将保存的镜像文件载入成镜像-i指定载入的文件名docker export将container的文件系统进行打包保存-o指定保存文件名docker import将container保存文件导入后会成为一个image 不要跟export和import命令混淆 docker save/load IMAGE save和load操作的是镜像 docker export/import CONTAINERexport和import操作对象是容器 image包含多个层每一层都不可变save保存的信息包含每个层和所有标签 版本信息。 容器运行的时候会创建一个可写入的容器层所有的更改都写入容器层export导出的只有容器层不包含父层和标签信息。 docker save保存的是镜像imagedocker export保存的是容器container docker load用来载入镜像包docker import用来载入容器包但两者都会恢复为镜像 docker load不能对载入的镜像重命名而docker import可以为镜像指定新名称。 若是只想备份image使用save和load。 若是在启动容器后容器内容有变化需要备份则使用export和import。 扩展 postgres-save.tar:docker save导出的文件 postgres-export.tardocker export导出的文件 分层的文件系统。Docker镜像实际上就是由这样的一层层文件进行叠加起来的上层的文件会覆盖下层的同名文件。如果将postgres-save.tar中的各层文件合并到一起基本就是postgres-export.tar的内容。由于postgres-save.tar里面的各层文件会存在很多重复的文件这也解释了为什么postgres-save.tar会比postgres-export.tar大100多M。 docker load必须要载入的是一个分层文件系统而postgres-export.tar并不具有这样的结构因此无法载入。 而docker import仅仅是将tar包里面的文件复制进来所以不管tar包里面的文件结构是怎样的都可以载入进来所以能够载入postgres-save.tar。但postgres-save.tar并不是一个有效的操作系统镜像因此当我试图以改镜像启动容器时容器并不能启动 参考 docker一小时入门教程 (yuque.com)https://yeasy.gitbook.io/docker_practice/https://jingsam.github.io/2017/08/26/docker-save-and-docker-export.html
http://www.ihoyoo.com/news/108616.html

相关文章:

  • 网站建设中古典武侠中文字幕建设部网站中淼工程有限公司
  • 网站建设可行性分析网站建设网站服务流程
  • 网站网速慢服务器与网站吗
  • 做社交网站需要什么资质公司官方网站推广策划
  • 丹棱县 网站建设网站推广策划案例
  • 广州天河酒店网站建设dede 网站源码
  • 地图设计网站石家庄网站制作视频
  • 建设厅网站2015154陕西省工程信息网
  • 网站建设站长微豆网络科技有限公司网页设计
  • 内黄县住房和城乡建设局网站钟楼做网站
  • 教育视频培训网站建设网上运营培训班
  • 文网站建设安装wordpress主题失败
  • 网站快速收录平台爱是做的电影网站吗
  • 个人网站 阿里云西宁高端网站开发公司
  • 网站开发公司成都制作的网站图片不显示
  • 青海网站制作多少钱百度营销推广登录
  • 怎么做好网站开发、设计网络推广和seo
  • 盘锦做网站建设的方维网络科技有限公司
  • 做母婴网站设计思路wordpress 什么语言
  • 湖州市交通建设管理局网站小说网站排行榜前十名
  • 网站建设一六八互联做网站卖广告挣几百万
  • 北京做网站建设价格低做网站的技术难点
  • 设计比较好的企业网站微信内部劵网站怎么做
  • 做动态logo网站网页视频下载神器哪种最好
  • 做毕业设计免费网站贸易公司寮步网站建设价钱
  • 用eclipse做网站模板网页生成pdf
  • 加强网站信息内容建设管理活动营销策划方案
  • 泉州营销型网站设计做网站工作辛苦吗
  • 网站死链怎么办wordpress相关推荐代码
  • 政务公开和网站建设开封网站制作哪家好