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

网站域名试用期水墨风格网站源码

网站域名试用期,水墨风格网站源码,厦门市建设局综合业务平台网站,百度关键词优化软件排名1. 概述 官网#xff1a;https://docs.docker.com/ Docker Hub 网站#xff1a;https://hub.docker.com/ 容器较为官方的解释#xff1a; 一句话概括容器#xff1a;容器就是将软件打包成标准化单元#xff0c;以用于开发、交付和部署。 容器镜像是轻量的、可执行的独立…1. 概述 官网https://docs.docker.com/ Docker Hub 网站https://hub.docker.com/ 容器较为官方的解释 一句话概括容器容器就是将软件打包成标准化单元以用于开发、交付和部署。 容器镜像是轻量的、可执行的独立软件包包含软件运行所需的所有内容代码、运行时环境、系统工具、系统库和设置。容器化软件适用于基于 Linux 和 Windows 的应用在任何环境中都能够始终如一地运行。容器赋予了软件独立性使其免受外在环境差异例如开发和预演环境的差异的影响从而有助于减少团队间基础设施上运行不同软件时的冲突。 容器较为通俗的解释 如果需要通俗地描述容器的话我觉得容器就是一个存放东西的地方就像书包可以装各种文具、衣柜可以放各种衣服、鞋架可以放各种鞋子一样。我们现在所说得容器存放的东西可能更偏向于应用比如网站、程序甚至是系统环境。 2. 虚拟化技术和容器化技术 2.1 虚拟化技术 首先Docker 容器虚拟化技术为基础的软件那么什么事虚拟化技术呢? 简单点来说虚拟化技术可以这样定义 虚拟化技术是一种资源管理技术是将计算机的各种实体资源CPU、内存、磁盘空间、网络适配器等予以抽象、转换后呈现出来可供分割、组合为一个或多个电脑配置环境。由此打破实体结构间的不可切割的障碍使用户可以比原本的配置更好的方式来应用这些电脑硬件资源。这些资源的新虚拟部分是不受现有资源的架设方式地域或物理配置所限制。一般所指的虚拟化资源包括计算能力和数据存储。 2.2 Docker 基于 LXC 虚拟容器技术 Docker 技术是基于 LXCLinux container-Linux 容器虚拟容器技术的。 LXC其名称来自 Linux 软件容器Linux Containers的缩写一种操作系统层虚拟化Operating system-level virtualization技术为 Linux 内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器Container内含应用软件本身的代码以及所需要的操作系统核心和库。通过统一的名字空间和共用 API 来分配不同软件容器的可用硬件资源创造出应用程序的独立沙箱运行环境使得 Linux 用户可以容易地创建和管理系统或应用容器。 LXC 技术主要是借助 Linux 内核中提供的 CGroup 功能和 name space 来实现的通过 LXC 可以为软件提供一个独立的操作系统运行环境。 cgroup 和 namespace 介绍 namesapce 是 Linux 内核用来隔离内核资源的方式。通过 namespace 可以让一些进程只能看到与自己相关的一部分资源而另外一些进程也只能看到与它们自己相关的资源这两拨进程根本就感觉不到对方的存在。具体的实现方式是把一个或多个进程的相关资源指定在同一个 namespace 中。Linux namespaces 是对全局系统资源的一种封装隔离使得处于不同 namespace 的进程拥有独立的全局系统资源改变一个 namespace 中的系统资源只会影响当前 namespace 里的进程对其他 namespace 中的进程没有影响。 以上关于 namespace 介绍内容来自 https://www.cnblogs.com/sparkdev/p/9365405.html更多关于 namespace 的内容可以查看这篇文章。 CGroup 是 Control Groups 的缩写是 Linux 内核提供的一种可以限制、记录、隔离进程组process groups所使用的物力资源如 cpu memory i/o 等等的机制。 以上关于 CGroup 介绍内容来自https://www.ibm.com/developerworks/cn/linux/1506_cgroup/index.html更多关于 Cgroup 的内容可以查看这篇文章 cgroup 和 namespace 两者对比 两者都是将进程进行分组但是两者的作用还是有本质区别。namespace 是为了隔离进程组之间的资源而 cgroup 是为了对一组进程进行统一的资源监控和限制。 3. Docker 基本组成 Docker 中有非常重要的三个基本概念理解了这三个概念就理解了 Docker 的整个生命周期。 镜像Image容器Container仓库Repository 理解了这三个概念就理解了 Docker 的整个生命周期 4. Docker 安装 4.1 查看系统内核和系统信息 命令 uname -r #查看系统内核版本 cat /etc/os-release #查看系统版本 12示例 [root]# uname -r 4.18.0-348.7.1.el8_5.x86_64[root]# cat /etc/os-release NAMECentOS Linux VERSION8 (Core) IDcentos ID_LIKErhel fedora VERSION_ID8 PLATFORM_IDplatform:el8 PRETTY_NAMECentOS Linux 8 (Core) ANSI_COLOR0;31 CPE_NAMEcpe:/o:centos:centos:8 HOME_URLhttps://www.centos.org/ BUG_REPORT_URLhttps://bugs.centos.org/CENTOS_MANTISBT_PROJECTCentOS-8 CENTOS_MANTISBT_PROJECT_VERSION8 REDHAT_SUPPORT_PRODUCTcentos REDHAT_SUPPORT_PRODUCT_VERSION8 4.2 开始安装 Docker 卸载旧版本 命令 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 示例 [rootiZ1608aqb7ntn9Z /]# yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine No match for argument: docker No match for argument: docker-client No match for argument: docker-client-latest No match for argument: docker-common No match for argument: docker-latest No match for argument: docker-latest-logrotate No match for argument: docker-logrotate No match for argument: docker-engine 没有软件包需要移除。 依赖关系解决。 无需任何处理。 完毕 下载依赖安装包 yum install -y yum-utils 1配置镜像仓库 #国外的地址 yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo # 设置阿里云的Docker镜像仓库 yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 示例 [root]# yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 添加仓库自https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 更行yum软件包 yum makecache fast #更新索引的时候出错即centos8没有该参数解决办法为去掉fast参数 下载 docker yum install docker-ce docker-ce-cli containerd.io # 安装社区版 yum install docker-ee docker-ee-cli containerd.io # 安装企业版 一般情况下安装 社区版 4.3 启动 Docker 命令 systemctl start docker # 启动Docker docker version # 查看当前版本号是否启动成功 systemctl enable docker # 设置开机自启动 示例 $ systemctl start docker$ docker version Client: Docker Engine - CommunityVersion: 20.10.14API version: 1.41Go version: go1.16.15Git commit: a224086Built: Thu Mar 24 01:47:44 2022OS/Arch: linux/amd64Context: defaultExperimental: trueServer: Docker Engine - CommunityEngine:Version: 20.10.14API version: 1.41 (minimum version 1.12)Go version: go1.16.15Git commit: 87a90dcBuilt: Thu Mar 24 01:46:10 2022OS/Arch: linux/amd64Experimental: falsecontainerd:Version: 1.5.11GitCommit: 3df54a852345ae127d1fa3092b95168e4a88e2f8runc:Version: 1.0.3GitCommit: v1.0.3-0-gf46b6badocker-init:Version: 0.19.0GitCommit: de40ad0 4.4 Docker 的 HelloWorld 命令 docker run hello-world 示例 $ docker run hello-world Unable to find image hello-world:latest locally # 本地没有 latest: Pulling from library/hello-world # pull一个最新版 2db29710123e: Pull complete # pull成功 Digest: sha256:10d7d58d5ebd2a652f4d93fdd86da8f265f5318c6a73cc5b6a9798ff6d2b2e67 Status: Downloaded newer image for hello-world:latestHello from Docker! # 运行结果 This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the hello-world image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/ 5. Docker 卸载 yum remove docker-ce docker-ce-cli containerd.io # 卸载依赖 rm -rf /var/lib/docker # 删除资源 . /var/lib/docker是docker的默认工作路径 6. 配置阿里云镜像 进入阿里云官网搜索容器镜像服务 执行命令 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF {registry-mirrors: [https://axvfsf7e.mirror.aliyuncs.com] } EOF sudo systemctl daemon-reload sudo systemctl restart docker 7. Docker 运行流程和原理 启动流程 运行原理 Docker 整体架构 8. Docker 常用命令 命令的帮助文档地址https://docs.docker.com/engine/reference/commandline/docker/ 管理镜像常用命令 创建容器 容器限制 8.1 基本命令 命令 docker version #查看docker的版本信息 docker info #查看docker的系统信息,包括镜像和容器的数量 docker 命令 --help #帮助命令(可查看可选的参数) docker COMMAND --help 示例 $ docker info Client:Context: defaultDebug Mode: falsePlugins:app: Docker App (Docker Inc., v0.9.1-beta3)buildx: Docker Buildx (Docker Inc., v0.8.1-docker)scan: Docker Scan (Docker Inc., v0.17.0)Server:Containers: 1Running: 0Paused: 0Stopped: 1Images: 1Server Version: 20.10.14 ...... 8.2 镜像命令 docker images 查看本地主机的所有镜像 示例 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest feb5d9fea6a5 6 months ago 13.3kB 列表参数介绍 # 解释: 1.REPOSITORY 镜像的仓库源 2.TAG 镜像的标签 3.IMAGE ID 镜像的id 4.CREATED 镜像的创建时间 5.SIZE 镜像的大小# 可选参数 -a/--all 列出所有镜像 -q/--quiet 只显示镜像的id docker search 搜索镜像 示例 #可选参数 Search the Docker Hub for images Options:-f, --filter filter Filter output based on conditions provided--format string Pretty-print search using a Go template--limit int Max number of search results (default 25)--no-trunc Don\t truncate output#搜索收藏数大于3000的镜像$ docker search mysql --filterSTARS3000 NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 12427 [OK] mariadb MariaDB Server is a high performing open sou… 4787 [OK] docker pull 镜像名[:tag] 下载镜像 示例 $ docker pull mysql:5.7 5.7: Pulling from library/mysql 72a69066d2fe: Pull complete 93619dbc5b36: Pull complete 99da31dd6142: Pull complete 626033c43d70: Pull complete 37d5d7efb64e: Pull complete ac563158d721: Pull complete d2ba16033dad: Pull complete 0ceb82207cd7: Pull complete 37f2405cae96: Pull complete e2482e017e53: Pull complete 70deed891d42: Pull complete Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94 Status: Downloaded newer image for mysql:5.7 docker.io/library/mysql:5.7 docker rmi 删除镜像 #1.删除指定的镜像id [rootiZwz99sm8v95sckz8bd2c4Z ~]# docker rmi -f 镜像id#2.删除多个镜像id [rootiZwz99sm8v95sckz8bd2c4Z ~]# docker rmi -f 镜像id 镜像id 镜像id#3.删除全部的镜像id [rootiZwz99sm8v95sckz8bd2c4Z ~]# docker rmi -f $(docker images -aq) 8.3 容器命令 docker run [可选参数] image 运行容器 docker run [可选参数] image#参数说明 --name名字 指定容器名字 -d 后台方式运行 -it 使用交互方式运行,进入容器查看内容 -p 指定容器的端口 ( -p ip:主机端口:容器端口 配置主机端口映射到容器端口-p 主机端口:容器端口-p 容器端口) -P 随机指定端口(大写的P) 示例 $ docker run c20987f18b13 2022-04-18 07:07:3100:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.36-1debian10 started. 2022-04-18 07:07:3100:00 [Note] [Entrypoint]: Switching to dedicated user mysql 2022-04-18 07:07:3100:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.36-1debian10 started. 2022-04-18 07:07:3100:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specifiedYou need to specify one of the following:- MYSQL_ROOT_PASSWORD- MYSQL_ALLOW_EMPTY_PASSWORD- MYSQL_RANDOM_ROOT_PASSWORD 进入容器 [rootiZwz99sm8v95sckz8bd2c4Z ~]# docker run -it [容器ID] /bin/bash exit 退出容器 #exit 停止并退出容器后台方式运行则仅退出 #CtrlPQ 不停止容器退出 [rootbd1b8900c547 /]# exit exit [rootiZwz99sm8v95sckz8bd2c4Z ~]# docker ps 列出容器 #docker ps # 列出当前正在运行的容器 -a # 列出所有容器的运行记录 -n? # 显示最近创建的n个容器 (default -1) -q # 只显示容器的编号 -s # 显示总文件大小$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 703fad61eccb c20987f18b13 docker-entrypoint.s… 2 minutes ago Exited (0) 2 minutes ago inspiring_feistel 2e6f020d0299 c20987f18b13 docker-entrypoint.s… 3 minutes ago Exited (1) 3 minutes ago angry_stonebraker a4889b27716f hello-world /hello 14 minutes ago Exited (0) 14 minutes ago trusting_mcclintock docker rm 删除容器 # 选项 -f # 移除正在运行的容器使用SIGKILL -l # 移除容器间的网络连接而非容器本身 -v # 删除与容器关联的卷docker rm 容器id # 删除指定的容器,不能删除正在运行的容器,强制删除使用 rm -f docker rm -f $(docker ps -aq) # 删除所有的容器 docker ps -a -q | xargs docker rm # 删除所有的容器 启动和重启容器命令 docker start 容器id #启动容器 docker restart 容器id #重启容器 docker stop 容器id #停止当前运行的容器 docker kill 容器id #强制停止当前容器 8.4 其他命令 后台启动容器 #命令 docker run -d 镜像名 $ docker run -d ubuntu c21cd5dd2594ec109dfb7e8eeba6bd129291de1f1095389c9b31492e98360947#问题docker ps发现ubuntu停止了#常见的坑docker容器使用后台运行就必须要有一个前台进程docker发现没有应用了就会自动停止 #nginx容器启动后发现自己没有提供服务就会立刻停止就是没有程序了 查看日志 $ docker logs --helpUsage: docker logs [OPTIONS] CONTAINERFetch the logs of a containerOptions: -f # 跟踪日志输出 --since # 显示某个开始时间的所有日志 -t # 显示时间戳 -n # 仅列出最新N条容器日志默认为“全部”常用 docker logs -tf 容器id docker logs --tail number 容器id #num为要显示的日志条数 docker logs -n number 容器id #num为要显示的日志条数#docker容器后台运行必须要有一个前台的进程否则会自动停止 #编写shell脚本循环执行使得centos容器保持运行状态 $ docker run -d centos /bin/sh -c while true;do echo hi;sleep 5;done f51f3cbb27511b49d85c98fa62691a1a19397d4a272a8cc7d4769d3d6ec41f2a$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f51f3cbb2751 centos /bin/sh -c while t… 10 seconds ago Up 9 seconds busy_ride$ docker logs -tf --tail 10 f51f3cbb2751 2022-04-18T07:24:27.364628955Z hi 2022-04-18T07:24:32.365938530Z hi 2022-04-18T07:24:37.367324268Z hi 2022-04-18T07:24:42.368615239Z hi 2022-04-18T07:24:47.369976390Z hi 2022-04-18T07:24:52.371426169Z hi 2022-04-18T07:24:57.372834380Z hi 2022-04-18T07:25:02.374156939Z hi 2022-04-18T07:25:07.375425598Z hi 查看容器中进程信息 # 命令 docker top 容器id $ docker top f51f3cbb2751 UID PID PPID C STIME TTY TIME CMD root 17874 17853 0 15:24 ? 00:00:00 /bin/sh -c while true;do echo hi;sleep 5;done root 18164 17874 0 15:25 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebangsleep /usr/bin/sleep 5 12345 查看镜像的元数据 $ docker inspect 容器id#docker inspect : 获取容器/镜像的元数据。#语法 docker inspect [OPTIONS] NAME|ID [NAME|ID...]#OPTIONS说明 -f :指定返回值的模板文件。 -s :显示总的文件大小。 --type :为指定类型返回JSON。 进入当前正在运行的容器 方式一 # 我们通常容器使用后台方式运行的 需要进入容器修改一些配置# 命令 docker exec -it 容器id /bin/bash# 测试 $ docker exec -it df358bc06b17 /bin/bash [rootdf358bc06b17 /]# ls bin etc lib lostfound mnt proc run srv tmp var dev home lib64 media opt root sbin sys usr [rootdf358bc06b17 /]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Aug11 pts/0 00:00:00 /bin/bash root 29 0 0 01:06 pts/1 00:00:00 /bin/bash root 43 29 0 01:06 pts/1 00:00:00 ps -ef# 方式二 docker attach 容器id# docker exec # 进入容器后开启一个新的终端可以在里面操作 # docker attach # 进入容器正在执行的终端不会启动新的进程#语法 docker exec [OPTIONS] CONTAINER COMMAND [ARG...]#OPTIONS说明 -d :分离模式: 在后台运行 -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端 拷贝容器文件到主机 拷贝容器的文件到主机中 docker cp 容器id:容器内路径 目的主机路径#进入容器中$ docker cp 8b84603c410a:/home/test.java /home$ ls alex arod hello.java neos test.java#拷贝只是一个手动功能未来我们使用 -v 卷的技术可以实现自动同步 常用命令小结 9. Docker 图形化管理工具  9.1 Docker UI 命令 docker search dockerui docker pull abh1nav/dockerui docker run -d --privileged --name dockerui -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock abh1nav/dockerui #放开物理机的9000端口对应Docker容器的9000端口 示例 $ docker search dockerui NAME DESCRIPTION STARS OFFICIAL AUTOMATED abh1nav/dockerui An updated version of crosbymichael/dockerui… 99 [OK] kevan/dockerui Deprecated: Use uifd/ui-for-docker 15 [OK] ......$ docker pull abh1nav/dockerui Using default tag: latest latest: Pulling from abh1nav/dockerui Image docker.io/abh1nav/dockerui:latest uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/ a3ed95caeb02: Pull complete 5d3df020ecd3: Pull complete bebf5a3b4dfb: Pull complete e4452c0fe72b: Pull complete 6167d9726b07: Pull complete 53ebae19a314: Pull complete Digest: sha256:a9c6c5393f561a0f42f41cfa80572b666e745d9b419569c42bac1e5cf9ceda32 Status: Downloaded newer image for abh1nav/dockerui:latest docker.io/abh1nav/dockerui:latest$ docker run -d --privileged --name dockerui -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock abh1nav/dockerui 959047ff6deba1e5d31017024a41b611e48f416a6f87f2cad4f528801a260c52 使用 访问http://ip地址:9000 1 会出现如下的界面 9.2 Shipyard 镜像下载 [dockerdocker ~]$ docker pull alpine [dockerdocker ~]$ docker pull library/rethinkdb [dockerdocker ~]$ docker pull microbox/etcd [dockerdocker ~]$ docker pull shipyard/docker-proxy [dockerdocker ~]$ docker pull swarm [dockerdocker ~]$ docker pull shipyard/shipyard #英文版 脚本安装 shipyard #安装shipyard中文版curl http://dockerclub.net/deploy | bash -s 9.3 Portainer 命令 docker search portainer docker pull portainer/portainer docker run -d --name portainerUI -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer 示例 $ docker search portainer NAME DESCRIPTION STARS OFFICIAL AUTOMATED portainer/portainer This Repo is now deprecated, use portainer/p… 2201 portainer/portainer-ce Portainer CE - a lightweight service deliver… 1100 ...... $ docker pull portainer/portainer Using default tag: latest latest: Pulling from portainer/portainer 94cfa856b2b1: Pull complete 49d59ee0881a: Pull complete a2300fd28637: Pull complete Digest: sha256:fb45b43738646048a0a0cc74fcee2865b69efde857e710126084ee5de9be0f3f Status: Downloaded newer image for portainer/portainer:latest docker.io/portainer/portainer:latest$ docker run -d --name portainerUI -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer abbf483bd3df0e30eaeb3a0dd708776a6fbbf055e2c87bcb84177df7e86c8ac2 使用 访问http://ip地址:90001 10. 常见容器部署Nginx、Tomcat 、es kibana 10.1 Nginx 命令 # 1. 查找镜像, 建议去docker官网搜索可以看到帮助文档 https://registry.hub.docker.com/ docker search nginx# 2. 下载镜像 pull docker pull nginx# 3. 运行测试 docker images# 4.docker run -d --name nginx -p 3344:80 nginx # 启动 curl localhost:3344 # 本机测试访问 # 备注 # -d 后台运行 # --name 给容器命名 # -p 3334:80 将宿主机的端口3334映射到该容器的80端口# 进入容器 $ docker exec -it nginx /bin/bash rootc70636684cd8:/# whereis nginx nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx rootc70636684cd8:/# cd /etc/nginx/ rootc70636684cd8:/etc/nginx# ls conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params# 关闭容器 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c70636684cd8 nginx /docker-entrypoint.… 11 minutes ago Up 11 minutes 0.0.0.0:3344-80/tcp, :::3344-80/tcp nginx 959047ff6deb abh1nav/dockerui ./dockerui About an hour ago Up About an hour 0.0.0.0:9000-9000/tcp, :::9000-9000/tcp dockerui f51f3cbb2751 centos /bin/sh -c while t… About an hour ago Up About an hour busy_ride$ docker stop c70636684cd8 c70636684cd8 # 发现访问不了此网站 测试访问 10.2 Tomcat 命令 # 官方的使用 docker run -it --rm tomcat:9.0 # 我们之前的启动都是后台的停止了容器之后 容器还是可以查到docker run -it --rm 一般用来测试用完就删# 下载再启动 docker pull tomcat# 启动运行 docker run -d -p 3355:8080 --name tomcat01 tomcat# 测试访问没有问题# 进入容器 docker exec -it tomcat01 /bin/bash# 发现问题1.linux命令少了 2. webapps下内容为空阿里云默认是最小的镜像所有不必要的都剔除了 # 保证最小可运行环境即可rootfd58d9c477e4:/usr/local/tomcat# cp -r webapps.dist/* webapps ## 网站恢复访问 测试访问 10.3 es kibana 添加 ‘-e ES_JAVA_OPTS -Xms128m -Xmx512m ’配置 ElasticSearch 的虚拟机占用的内存大小。 docker stats 查看资源占用情况 # es 暴露的端口很多 # es 十分的耗内存 # es 的数据一般需要放置到安全目录 挂载 # --net somenetwork ? 网络配置# 启动elasticsearch docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e discovery.typesingle-node elasticsearch:7.6.2$ docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e discovery.typesingle-node elasticsearch:7.6.2 a920894a940b354d3c867079efada13d96cf9138712c76c8dea58fabd9c7e96f# 启动了linux就卡住了docker stats 查看cpu状态# 测试一下es成功了 $ curl localhost:9200 {name : a920894a940b,cluster_name : docker-cluster,cluster_uuid : bxE1TJMEThKgwmk7Aa3fHQ,version : {number : 7.6.2,build_flavor : default,build_type : docker,build_hash : ef48eb35cf30adf4db14086e8aabd07ef6fb113f,build_date : 2020-03-26T06:34:37.794943Z,build_snapshot : false,lucene_version : 8.4.0,minimum_wire_compatibility_version : 6.8.0,minimum_index_compatibility_version : 6.0.0-beta1},tagline : You Know, for Search }# 增加内存限制修改配置文件 -e 环境配置修改 docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e discovery.typesingle-node -e ES_JAVA_OPTS-Xms64m -Xmx512m elasticsearch:7.6.2$ docker stats 10.4 端口暴露的原理 10.5 可视化 portainer先用这个 docker run -d -p 8088:9000 --restartalways -v /var/run/docker.sock:/var/run/docker.sock --privilegedtrue portainer/portainer# 测试 $ curl localhost:8088 !DOCTYPE html html langen ng-appportainer ......!-- End Page Wrapper --script typetext/javascript srcvendor.50213a000e42f5c05bcc.js/scriptscript typetext/javascript srcmain.50213a000e42f5c05bcc.js/script/body/html # 外网访问 http://ip:8088 RancherCI/CD 再用 11. Docker 镜像讲解 11.1 镜像是什么 Docker 镜像是一种轻量级、可执行的独立软件包用来打包软件运行环境和基于运行环境开发的软件它包含某个软件所需的所有内容包括代码、库、环境变量、配置文件、运行时环境等。 所有的应用直接打包成 Docker 镜像然后通过镜像创建出容器然后就可以直接跑起来。 如果得到镜像 从远程仓库下载比如 docker hub、阿里云的镜像仓库等。朋友拷贝给你。自己制作一个镜像 DockerFile。 通过对原有的镜像创建的容器进行一些修改也可以不修改然后通过 Commit 命令提交一个新的镜像。 UnionFS联合文件系统 联合文件系统UnionFS是一个分层、轻量级并且高性能的文件系统它支持对文件系统的修改作为一次提交来一层层的叠加同时可以将不同目录挂载到同一个虚拟文件系统下。联合文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承基于基础镜像没有父镜像可以制作各种具体的应用镜像。特性一次同时加载多个文件系统但从外面看起来只能看到一个文件系统。联合加载会把各层文件系统叠加起来这样最终的文件系统会包含所有底层的文件和目录。 Docker 镜像加载原理 docker 镜像实际上是由一层层的文件系统组成这种层级文件系统就是联合文件系统。 bootfsboot file system主要包含 BootLoader 和 kernelBootLoader 主要负责引导加载 kernelLinux 刚启动时会加载 bootfs 文件系统来引导内核的加载Docker 镜像的最底层就是 bootfs。这一层与我们典型的 unix 系统是一样的包含 boot 引导器和内核当 boot 加载完成后整个内核就在内存中了此时内存的使用权已经由 bootfs 转交给内核此时系统会卸载 bootfs。rootfsroot file system包含典型 Linux 系统中的 /dev/proc/bin/etc 等标准目录和文件。rootfs 就是各种不同 Unix 操作系统发行版UbuntuCentos等。因为底层直接用 Host 的 Kernelrootfs 只包含最基本的命令工具和程序就可以了。 我们平时安装的虚拟机 centos 镜像好几个GDocker 安装的才 200 多M因为对于一个精简的OSrootfs 可以很小只需包含最基本的命令工具和程序库就行了因为底层直接使用宿主机的内核自己只需提供 tootfs相当于操作内核的客户端就可以由此可见不同发行版的 bootfs 基本是一致的rootfs 有差别因此不同的发行版可以公有 bootfs。虚拟机是分钟级别容器是秒级。 第一图仅仅是 bootf rootfs然后如果要制作一个 emacs 环境的镜像就在这个基础上新加一层 emacs 镜像如图二。如果要在添加一个 Apache 环境那就再图二基础上加一个 apache 镜像。如图三图中的每一层镜像都能进行复用。 11.2 分层理解 分层的镜像 比如上面的 redis 镜像。使用 docker inspect redis 镜像的ID 命令查看镜像的元信息找到 layer 信息。 由上图可以看到下载的 redis 镜像是由 6 个镜像一层层组成的。 这些镜像都是一个个独立可复用的镜像如果下载其他镜像是某一层镜像已经存在本地了就不用再下载直接复用该镜像节省空间。比如上面下载 redis 镜像时提示某个镜像已经存在。 注意 Docker 镜像都是只读的用镜像创建容器启动时实际上是在原本的镜像上新建了一层可写层到原本镜像的顶部这一层我们叫做容器层容器层之下的叫做镜像层。 如上图使用 Tomcat 镜像创建容器后会在 Tomcat 镜像的基础上新建一个可写层容器的写入是在可写层进行记录然后使用 commit 命令把该容器创建一个新的镜像实际上新的镜像是 tomcat镜像 可写层镜像以 tomcat 镜像为基础。通过下面介绍使用容器构建镜像可以更好地理解。 11.3 commit 镜像 命令 docker commit 提交容器成为一个新的副本 docker commit -m描述信息类似git提交的信息 -a作者 容器id 目标镜像名:[TAG]$ 编辑容器后提交容器成为一个新镜像a 实战测试 #1.启动一个默认的tomcat docker run -it -p 8080:8080 tomcat #2.发现这个默认的tomcat是没有webapps的应用镜像的原因官方的镜像默认webapps下面是没有文件的#3.自己拷贝进去基本的文件 cp -r webapps.dist/* webapps#4.将修改后的容器通过commit提交为新的镜像我们以后就使用我们自己制作的镜像了 docker commit alixingze -madd webapps app 容器ID tomcat02:1.0 12. 容器数据卷 12.1 什么是容器数据卷 为了实现数据持久化使容器之间可以共享数据。可以将容器内的目录挂载到宿主机上或其他容器内实现同步和共享的操作。即使将容器删除挂载到本地的数据卷也不会丢失。 docker 的理念回顾 将应用和环境打包成一个镜像。数据如果都在容器中那么我们容器一旦删除数据就会丢失 需求数据可以持久化
http://www.zqtcl.cn/news/661901/

相关文章:

  • 长沙网站开长沙手机网站建设哪些内容
  • 网站建设算固定资产吗做泵阀生意到哪个网站
  • 佛山网站建设定制杭州人防质监站网址
  • 什么网站可以做微官网定制小程序制作一个需要多少钱
  • 扒下来的网站怎么做修改什么样是权网站重高的
  • 淘宝客做网站链接潍坊网站建设wfzhy
  • 怎样做二维码链接到网站上做的比较好的美食网站有哪些
  • 自动化科技产品网站建设响应式博客wordpress
  • 个人建站如何赚钱男人的好看网
  • 门户网站建设管理工作作一手房用什么做网站
  • 网站建设优化服务案例三合一网站程序
  • 网站长尾词关于制作网站的方案
  • 做二手衣服的网站有哪些wordpress单本小说采集
  • 曲靖市建设局网站品牌营销咨询公司是做什么的
  • wordpress网站统计代码放哪个文件putty搭建wordpress
  • 桦南县建设局网站天坛装修公司口碑怎么样
  • 网站的建设求职简历网站开发与维护价格
  • 网站空间备份站长网站优点
  • 房产网站做那个比较好网页设计属于前端吗
  • 衡水企业网站建设费用html5网页设计教程
  • 用wp系统做网站网站有收录没排名
  • 网站源码程序下载ios开发软件
  • 设计好的网站什么是企业网站策划案
  • 北京网站建设亿玛酷适合5传奇网站装备动态图怎么做
  • 多平台网站设计实例3d效果图什么网站做的好
  • 58同城西安网站建设购物网站前端浮动特效怎么做
  • asp网站模板源码wordpress 画图插件
  • 免费网站建站 知乎伪原创嵌入网站
  • 2网站建设城乡住房建设网站
  • 游戏网站建设公司建设银行网站登陆二星是什么意思