首页 文章 精选 留言 我的

精选列表

搜索[Bot管理],共10008篇文章
优秀的个人博客,低调大师

Docker数据管理

Docker的数据卷是可以绕过文件系统的,而且数据卷是可以共享,可重用的 查看数据卷: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@docker~] #dockerinspect-f``.`Volumes`volume-test1 map[ /data : /var/lib/docker/volumes/9f36c1a9b7728974566268a2beebb0b917226952280c96107388469659bfcfe5/_data ] [root@docker~] #cd/var/lib/docker/ [root@dockerdocker] #ls containersdevicemappergraphinitlinkgraph.dbrepositories-devicemappertmptrustvolumes [root@dockerdocker] #cdvolumes/ [root@dockervolumes] #ls-lrt total8 drwxr-xr-x3rootroot4096Feb2409:2963ccf5d524567c835c6d542cfc74d1a28d28fdf48a0bca0c517cb8dedf46b632 drwxr-xr-x3rootroot4096Feb2409:309f36c1a9b7728974566268a2beebb0b917226952280c96107388469659bfcfe5 [root@dockervolumes] #cd9f36c1a9b7728974566268a2beebb0b917226952280c96107388469659bfcfe5/ [root@docker9f36c1a9b7728974566268a2beebb0b917226952280c96107388469659bfcfe5] # [root@docker~] #dockerrun-it--namevolume-test1-hnginx-v/datacentos [root@nginx/] #ls/data 测试: 1、系统随机生成的目录,进行挂载 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 容器的宿主机: [root@docker9f36c1a9b7728974566268a2beebb0b917226952280c96107388469659bfcfe5] #ls _data [root@docker9f36c1a9b7728974566268a2beebb0b917226952280c96107388469659bfcfe5] #cd_data/ [root@docker_data] #ls passwd [root@docker_data] #ddif=/dev/zeroof=test.isobs=1Mcount=10 10+0records in 10+0recordsout 10485760bytes(10MB)copied,0.00956288s,1.1GB /s [root@docker_data] #ls passwd test .iso 容器内: [root@nginx/] #cd/data/ [root@nginxdata] #ls [root@nginxdata] #cp/etc/passwd. [root@nginxdata] #ls passwd [root@nginxdata] #ls passwd test .iso 说明:容器的宿主机的目录已共享给容器使用(删除容器后,原有的数据卷目录中的文件仍旧是存在的) 2、系统指定的目录,进行挂载 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 宿主机的操作: [root@docker~] #mkdir-p/volume-test2-data [root@docker~] #dockerrun-it-d--namevolume-test2-hcentos7--restart=always-v/volume-test2-data:/centos-datacentos 29e9a41e563d514c8b9f14d14a0426af955651b28109c4851cfec40a186244d0 [root@docker~] #dockerps-l CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 29e9a41e563dcentos "/bin/bash" 7secondsagoUp5secondsvolume-test2 [root@docker~] #cp-r/usr/share/doc/abrt-2.0.8//volume-test2-data/ [root@docker~] #ls-l/volume-test2-data/ total4 drwxr-xr-x2rootroot4096Feb2409:58abrt-2.0.8 容器内的操作: [root@docker~] #./in.sh29e9a41e563d [root@centos7/] #df-h FilesystemSizeUsedAvailUse%Mountedon /dev/mapper/docker-8 :3-8388750-29e9a41e563d514c8b9f14d14a0426af955651b28109c4851cfec40a186244d09.8G230M9.0G3%/ tmpfs1.9G01.9G0% /dev shm64M064M0% /dev/shm /dev/sda3 193G11G173G6% /etc/hosts [root@centos7/] #cd/centos-data/ [root@centos7centos-data] #ls abrt-2.0.8 [root@centos7centos-data] #cp/etc/passwd. [root@centos7centos-data] #ls abrt-2.0.8 passwd [root@docker_data] #ls/volume-test2-data/ abrt-2.0.8 passwd 3、系统指定的目录,进行挂载(可挂载多个,并设置权限,默认为rw权限) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 宿主机的操作: 先删除原有的容器 [root@docker~] #dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 29e9a41e563dcentos "/bin/bash" 11minutesagoUp11minutesvolume-test2 8884fc392971nginx"nginx-g'daemonof13hoursagoUp51minutes80 /tcp ,443 /tcp nginxdocker 14caa9ab03a9dockerui /dockerui "/dockerui" 46hoursagoUp51minutes0.0.0.0:9000->9000 /tcp dockerui_qinwen e278cabec91ecentos "/bin/bash" 47hoursagoUp51minutescentos_aways 删除正在允许的容器时,会有报错信息: [root@docker~] #dockerrm29e9a41e563d-f Errorresponsefromdaemon:Cannotdestroycontainer29e9a41e563d:Conflict,Youcannotremovearunningcontainer.Stopthecontainerbeforeattemptingremovaloruse-f Errorresponsefromdaemon:nosuch id :-f Error:failedtoremovecontainers:[29e9a41e563d-f] [root@docker~] #dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 29e9a41e563dcentos "/bin/bash" 11minutesagoUp11minutesvolume-test2 8884fc392971nginx"nginx-g'daemonof13hoursagoUp52minutes80 /tcp ,443 /tcp nginxdocker 14caa9ab03a9dockerui /dockerui "/dockerui" 46hoursagoUp52minutes0.0.0.0:9000->9000 /tcp dockerui_qinwen e278cabec91ecentos "/bin/bash" 47hoursagoUp52minutescentos_aways 先停止容器,然后再进行删除: [root@docker~] #dockerstop29e9a41e563d 29e9a41e563d [root@docker~] #dockerrm29e9a41e563d 29e9a41e563d [root@docker~] #dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 8884fc392971nginx"nginx-g'daemonof13hoursagoUp52minutes80 /tcp ,443 /tcp nginxdocker 14caa9ab03a9dockerui /dockerui "/dockerui" 46hoursagoUp52minutes0.0.0.0:9000->9000 /tcp dockerui_qinwen e278cabec91ecentos "/bin/bash" 47hoursagoUp52minutescentos_aways 运行一个基于centos镜像的容器,容器名称为volume-test2,并设置容器中的主机名为centos7(仅对容器有效),挂载本地的 /volume-test2-data 以及 /opt 目录,并且指定 /opt 目录对容器是只读的 [root@docker~] #dockerrun-it-d--namevolume-test2-hcentos7--restart=always-v/volume-test2-data:/centos-data-v/opt:/opt:rocentos 37652d4601948fe8421c0371278e9bee8c5cbb35f16c7bf755764d56ddafa304 [root@docker~] #dockerps-l CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 37652d460194centos "/bin/bash" 16secondsagoUp15secondsvolume-test2 [root@docker~] #./in.sh37652d460194 容器内的操作: [root@centos7/] #cd/opt/ [root@centos7opt] #ls rh [root@centos7opt] #ls opt.isorh [root@centos7opt] #touch123.txt touch :cannot touch ‘123.txt’:Read-only file system --volume-from: 继承容器数据卷的操作: [root@docker~] #dockerrun-it-d--restart=always--namevolume-test04--volumes-fromvolume-test2centos 94ea720a2c418286d26068d126df35523742e2f910685863f876c3ba9c09638c [root@docker~] #dockerps-l CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 94ea720a2c41centos "/bin/bash" 6secondsagoUp4secondsvolume-test04 [root@docker~] #./in.sh94ea720a2c41 [root@94ea720a2c41/] #ls/ anaconda-post.logcentos-dataetcliblost+foundmntprocrunsrvtmpvar bindevhomelib64mediaoptrootsbinsysusr [root@94ea720a2c41/] #cd/opt/ [root@94ea720a2c41opt] #ls opt.isorh [root@94ea720a2c41opt] #cd/centos-data/ [root@94ea720a2c41centos-data] #ls abrt-2.0.8 passwd [root@94ea720a2c41centos-data] #touch12345.txt [root@94ea720a2c41centos-data] #cd/opt [root@94ea720a2c41opt] #ls opt.isorh [root@94ea720a2c41opt] #touch111 touch :cannot touch ‘111’:Read-only file system 拥有volume-test2的容器的操作: [root@docker~] #dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 94ea720a2c41centos "/bin/bash" 45secondsagoUp43secondsvolume-test04 37652d460194centos "/bin/bash" AboutanhouragoUpAboutanhourvolume-test2 8884fc392971nginx"nginx-g'daemonof14hoursagoUpAboutanhour80 /tcp ,443 /tcp nginxdocker 14caa9ab03a9dockerui /dockerui "/dockerui" 47hoursagoUpAboutanhour0.0.0.0:9000->9000 /tcp dockerui_qinwen e278cabec91ecentos "/bin/bash" 2daysagoUpAboutanhourcentos_aways [root@docker~] #./in.sh37652d460194 [root@centos7/] #ls anaconda-post.logcentos-dataetcliblost+foundmntprocrunsrvtmpvar bindevhomelib64mediaoptrootsbinsysusr [root@centos7/] #cd/centos-data/ [root@centos7centos-data] #ls abrt-2.0.8 passwd [root@centos7centos-data] #ls 12345.txtabrt-2.0.8 passwd 进一步进行测试: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [root@docker~] #dockerrun-it-d--restart=always--namevolume-test04--volumes-fromvolume-test2centos 94ea720a2c418286d26068d126df35523742e2f910685863f876c3ba9c09638c 宿主机上的操作: [root@docker~] #dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 94ea720a2c41centos "/bin/bash" 14minutesagoUp14minutesvolume-test04 37652d460194centos "/bin/bash" AboutanhouragoUpAboutanhourvolume-test2 8884fc392971nginx"nginx-g'daemonof14hoursagoUp2hours80 /tcp ,443 /tcp nginxdocker 14caa9ab03a9dockerui /dockerui "/dockerui" 47hoursagoUp2hours0.0.0.0:9000->9000 /tcp dockerui_qinwen e278cabec91ecentos "/bin/bash" 2daysagoUp2hours [root@docker~] #dockerstop37652d460194 37652d460194 [root@docker~] #dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 94ea720a2c41centos "/bin/bash" 14minutesagoUp14minutesvolume-test04 8884fc392971nginx"nginx-g'daemonof14hoursagoUp2hours80 /tcp ,443 /tcp nginxdocker 14caa9ab03a9dockerui /dockerui "/dockerui" 47hoursagoUp2hours0.0.0.0:9000->9000 /tcp dockerui_qinwen e278cabec91ecentos "/bin/bash" 2daysagoUp2hourscentos_aways [root@docker_data] #cd/volume-test2-data [root@dockervolume-test2-data] #ls 12345.txtabrt-2.0.8 passwd [root@dockervolume-test2-data] #ls-lrt total8 drwxr-xr-x2rootroot4096Feb2409:58abrt-2.0.8 -rw-r--r--1rootroot692Feb2410:01 passwd -rw-r--r--1rootroot0Feb2411:1612345.txt 容器内的操作: [root@94ea720a2c41opt] #cd/centos-data/ [root@94ea720a2c41centos-data] #ls-lrt total8 drwxr-xr-x2rootroot4096Feb2401:58abrt-2.0.8 -rw-r--r--1rootroot692Feb2402:01 passwd -rw-r--r--1rootroot0Feb2403:1612345.txt [root@94ea720a2c41centos-data] # 说明: 1、验证后可以发现,ro权限是正常的 2、这种映射在Dockerfile里面是没法使用的 3、这里我们不管volume-test2 所属的容器是否正在允许,在新主机中均能够继承 本文转自 冰冻vs西瓜 51CTO博客,原文链接:http://blog.51cto.com/molewan/1744570,如需转载请自行联系原作者

优秀的个人博客,低调大师

docker镜像、容器管理

Docker优势 1)更高效的利用系统资源 无论是应用执行速度、内存损耗或者文件存储速度,都要比传 统虚拟机技术更高效。 2)更快速的启动时间 Docker容器应用,由于直接 运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启 动时间。 3)一致的运行环境 Docker的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性 4)持续交付和部署 使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。 二:为什么要使用Docker 不仅仅开发团队可以理解应用运行环 境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像 5)更轻松的迁移 Docker可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的,不用担心运行环境的变化导致应用无法正常运行的情况。 6)更轻松的维护和扩展 Docker使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也 使得应用的维护更新更加简单。 7)对比传统虚拟机 特性 容器 虚拟机 硬盘使用 一般为MB 一般为GB 系统支持量 单机支持上千个容器 一般为几十个 首先使用yum安装docker 查看docker版本信息 或者使用docker info俩种办法 显示本机images PEPOSITORY——来自哪个仓库TAG——标记IMAGE ID——镜像ID号CREATED——创建时间SIZE——镜像大小 查找images镜像 获取下载images镜像 查看文件镜像 或者俩种办法 使用docker commit来扩展一个image 在容器种添加mariadb 需要yum 查看结果 1)从dockerfile来创建image #this is a comment FROM docker.io/jdeathe/centos-ssh:latest MAINTAINER tom <tom@example.com> RUN yum -q -y install apr apr-util RUN yum -q -y install httpd 然后生成镜像 修改镜像标签 从本地镜像导入 上传镜像登录用户名密码 二移除本地镜像 存出镜像 载入 从本地镜像导入镜像库 三容器 Docker包括三个概念 镜像(lmage) 容器(Container) 仓库(Repository) 1)Docker镜像 对于Linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持。而Docker镜像(Image),就相当于是一个root文件系统。 2)Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资 源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境 变量、用户等)。 3)镜像不包含任何动态数据,其内容在构建之后也不会被改变。 4)镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生 改变,后一层上的任何改变只发生在自己这一层 如,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。在最终容器运行的时候,虽然不会看到这个文件,但是实际上该文件会一直跟随镜像。 1镜像容器 命令使用 命令输出 查看容器帮助docker ps -h 容器启动 容器停止 容器进程守护 查看容器信息ID容器名等 进入容器 删除处于UP的容器 批量删除多个容器 本文转自柴鑫旺 51CTO博客,原文链接:http://blog.51cto.com/chaixinwang/1956900,如需转载请自行联系原作者

优秀的个人博客,低调大师

Swarm Mode服务管理

环境准备 [root@swarm-manager ~]# cat > ./sources.list <<END > deb http://mirrors.aliyun.com/debian stretch main contrib non-free > deb http://mirrors.aliyun.com/debian stretch-proposed-updates main contrib non-free > deb http://mirrors.aliyun.com/debian stretch-updates main contrib non-free > deb http://mirrors.aliyun.com/debian-security/ stretch/updates main non-free contrib > END [root@swarm-manager ~]# cat Dockerfile FROM nginx:latest ADD sources.list /etc/apt/sources.list RUN apt-get update && apt-get install -y dnsutils iproute2 net-tools curl && apt-get clean ADD index.html /usr/share/nginx/html/index.html [root@swarm-manager ~]# echo "nginx:v1" > index.html [root@swarm-manager ~]# docker build -t registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 . [root@swarm-manager ~]# echo "nginx:v2" > index.html [root@swarm-manager ~]# docker build -t registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v2 . [root@swarm-manager ~]# docker push registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 [root@swarm-manager ~]# docker push registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v2 create [root@swarm-manager ~]# docker service create --name nginx registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 [root@swarm-manager ~]# docker service ls ID NAME MODE REPLICAS IMAGE PORTS 63c04khgjl03 nginx replicated 1/1 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 [root@swarm-manager ~]# docker service ps nginx ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS zo87xl8e3in9 nginx.1 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 swarm-node1 Running Running 4 minutes ago update [root@swarm-manager ~]# docker service update --network-add my-network --publish-add 80:80 nginx [root@swarm-manager ~]# docker service ls ID NAME MODE REPLICAS IMAGE PORTS 63c04khgjl03 nginx replicated 1/1 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 *:80->80/tcp [root@swarm-manager ~]# docker service ps nginx ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS lppql3gw8phx nginx.1 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 swarm-node1 Running Running 3 minutes ago zo87xl8e3in9 \_ nginx.1 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 swarm-node1 Shutdown Shutdown 3 minutes ago Scale [root@swarm-manager ~]# docker service scale nginx=2 [root@swarm-manager ~]# docker service ps nginx ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS lppql3gw8phx nginx.1 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 swarm-node1 Running Running 4 minutes ago zo87xl8e3in9 \_ nginx.1 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 swarm-node1 Shutdown Shutdown 4 minutes ago qqptr8htux76 nginx.2 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 swarm-node2 Running Running 2 minutes ago update & rollback 查看当前版本 [root@swarm-manager ~]# curl 127.0.0.1 nginx:v1 进行rolling update [root@swarm-manager ~]# docker service update --image registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v2 nginx [root@swarm-manager ~]# docker service ps nginx ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS iwpnzn3ss6uo nginx.1 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v2 swarm-node1 Running Running 4 minutes ago lppql3gw8phx \_ nginx.1 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 swarm-node1 Shutdown Shutdown 4 minutes ago zo87xl8e3in9 \_ nginx.1 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 swarm-node1 Shutdown Shutdown 5 minutes ago 1c47y3e14dc0 nginx.2 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v2 swarm-node2 Running Running 3 minutes ago qqptr8htux76 \_ nginx.2 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 swarm-node2 Shutdown Shutdown 3 minutes ago [root@swarm-manager ~]# curl 127.0.0.1 nginx:v2 进行rollback [root@swarm-manager ~]# docker service update --rollback nginx nginx [root@swarm-manager ~]# docker service ps nginx ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS xign4i5kxc0m nginx.1 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 swarm-node1 Running Running 3 minutes ago iwpnzn3ss6uo \_ nginx.1 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v2 swarm-node1 Shutdown Shutdown 3 minutes ago lppql3gw8phx \_ nginx.1 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 swarm-node1 Shutdown Shutdown 5 minutes ago zo87xl8e3in9 \_ nginx.1 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 swarm-node1 Shutdown Shutdown 6 minutes ago em9hv301ga5f nginx.2 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 swarm-node2 Running Running 3 minutes ago 1c47y3e14dc0 \_ nginx.2 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v2 swarm-node2 Shutdown Shutdown 3 minutes ago qqptr8htux76 \_ nginx.2 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 swarm-node2 Shutdown Shutdown 4 minutes ago [root@swarm-manager ~]# curl 127.0.0.1 nginx:v1 healthcheck 增加健康检查 [root@swarm-manager ~]# docker service update --health-cmd "curl -f http://localhost/ || exit 1" nginx [root@swarm-node1 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f7e1935f1c22 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 "nginx -g 'daemon ..." 17 seconds ago Up 12 seconds (health: starting) 80/tcp nginx.1.9dz6g3bizl4kwh8lctr552c6a [root@swarm-node1 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f7e1935f1c22 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 "nginx -g 'daemon ..." 44 seconds ago Up 38 seconds (healthy) 80/tcp nginx.1.9dz6g3bizl4kwh8lctr552c6a 故障测试 可见当健康状态异常时,将会停止并移除掉异常的容器并重新启动一个新的容器。 [root@swarm-node1 ~]# docker exec -it f7e1935f1c22 rm -f /usr/share/nginx/html/index.html [root@swarm-node1 ~]# date Wed Aug 16 16:48:41 CST 2017 [root@swarm-node1 ~]# docker events --since "2017-08-16T16:48:35" 2017-08-16T16:48:40.063995281+08:00 container exec_create: rm -f /usr/share/nginx/html/index.html f7e1935f1c2263112fe86a6e74c0d23a2ff369ffd54eab2781f2645a7dc7810a (com.docker.swarm.node.id=y83k6khc3vxmch1qd3j8kl4ak, com.docker.swarm.service.id=63c04khgjl033syhc5ef0e9g9, com.docker.swarm.service.name=nginx, com.docker.swarm.task=, com.docker.swarm.task.id=lkb6ags10aprqvzii5aht3pjf, com.docker.swarm.task.name=nginx.1.lkb6ags10aprqvzii5aht3pjf, image=registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1@sha256:b223de06038b1187d1d1b955df759839712a10cde33d7f2784ef3f9f5573ad71, name=nginx.1.lkb6ags10aprqvzii5aht3pjf) ... 2017-08-16T16:49:57.889494869+08:00 container health_status: unhealthy f7e1935f1c2263112fe86a6e74c0d23a2ff369ffd54eab2781f2645a7dc7810a (com.docker.swarm.node.id=y83k6khc3vxmch1qd3j8kl4ak, com.docker.swarm.service.id=63c04khgjl033syhc5ef0e9g9, com.docker.swarm.service.name=nginx, com.docker.swarm.task=, com.docker.swarm.task.id=lkb6ags10aprqvzii5aht3pjf, com.docker.swarm.task.name=nginx.1.lkb6ags10aprqvzii5aht3pjf, image=registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1@sha256:b223de06038b1187d1d1b955df759839712a10cde33d7f2784ef3f9f5573ad71, name=nginx.1.lkb6ags10aprqvzii5aht3pjf) 2017-08-16T16:49:59.891503804+08:00 container kill f7e1935f1c2263112fe86a6e74c0d23a2ff369ffd54eab2781f2645a7dc7810a (com.docker.swarm.node.id=y83k6khc3vxmch1qd3j8kl4ak, com.docker.swarm.service.id=63c04khgjl033syhc5ef0e9g9, com.docker.swarm.service.name=nginx, com.docker.swarm.task=, com.docker.swarm.task.id=lkb6ags10aprqvzii5aht3pjf, com.docker.swarm.task.name=nginx.1.lkb6ags10aprqvzii5aht3pjf, image=registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1@sha256:b223de06038b1187d1d1b955df759839712a10cde33d7f2784ef3f9f5573ad71, name=nginx.1.lkb6ags10aprqvzii5aht3pjf, signal=15) 2017-08-16T16:49:59.964124883+08:00 container die f7e1935f1c2263112fe86a6e74c0d23a2ff369ffd54eab2781f2645a7dc7810a (com.docker.swarm.node.id=y83k6khc3vxmch1qd3j8kl4ak, com.docker.swarm.service.id=63c04khgjl033syhc5ef0e9g9, com.docker.swarm.service.name=nginx, com.docker.swarm.task=, com.docker.swarm.task.id=lkb6ags10aprqvzii5aht3pjf, com.docker.swarm.task.name=nginx.1.lkb6ags10aprqvzii5aht3pjf, exitCode=0, image=registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1@sha256:b223de06038b1187d1d1b955df759839712a10cde33d7f2784ef3f9f5573ad71, name=nginx.1.lkb6ags10aprqvzii5aht3pjf) 2017-08-16T16:50:00.289350308+08:00 network disconnect i6xug49nwdsxauqqpli3apvym (container=f7e1935f1c2263112fe86a6e74c0d23a2ff369ffd54eab2781f2645a7dc7810a, name=ingress, type=overlay) 2017-08-16T16:50:00.289489879+08:00 network disconnect vxe1cwk14avlfp2xjgymhkhdl (container=f7e1935f1c2263112fe86a6e74c0d23a2ff369ffd54eab2781f2645a7dc7810a, name=my-network, type=overlay) 2017-08-16T16:50:00.345105732+08:00 container stop f7e1935f1c2263112fe86a6e74c0d23a2ff369ffd54eab2781f2645a7dc7810a (com.docker.swarm.node.id=y83k6khc3vxmch1qd3j8kl4ak, com.docker.swarm.service.id=63c04khgjl033syhc5ef0e9g9, com.docker.swarm.service.name=nginx, com.docker.swarm.task=, com.docker.swarm.task.id=lkb6ags10aprqvzii5aht3pjf, com.docker.swarm.task.name=nginx.1.lkb6ags10aprqvzii5aht3pjf, image=registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1@sha256:b223de06038b1187d1d1b955df759839712a10cde33d7f2784ef3f9f5573ad71, name=nginx.1.lkb6ags10aprqvzii5aht3pjf) 2017-08-16T16:50:00.922761678+08:00 container create 2132a1bd9287bc377f0800d9a06e6876aaddb9a71b0afd567c3838fbb6aa3934 (com.docker.swarm.node.id=y83k6khc3vxmch1qd3j8kl4ak, com.docker.swarm.service.id=63c04khgjl033syhc5ef0e9g9, com.docker.swarm.service.name=nginx, com.docker.swarm.task=, com.docker.swarm.task.id=y00kqcu26sq75js3fvpqx4kt5, com.docker.swarm.task.name=nginx.1.y00kqcu26sq75js3fvpqx4kt5, image=registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1@sha256:b223de06038b1187d1d1b955df759839712a10cde33d7f2784ef3f9f5573ad71, name=nginx.1.y00kqcu26sq75js3fvpqx4kt5) 2017-08-16T16:50:03.006063329+08:00 network destroy vxe1cwk14avlfp2xjgymhkhdl (name=my-network, type=overlay) 2017-08-16T16:50:03.376037876+08:00 container destroy 965a0ce53c2c0f2d5a740cb87c39ea51d164f1a6cf5bea0cf0679883dd99cb5c (com.docker.swarm.node.id=y83k6khc3vxmch1qd3j8kl4ak, com.docker.swarm.service.id=63c04khgjl033syhc5ef0e9g9, com.docker.swarm.service.name=nginx, com.docker.swarm.task=, com.docker.swarm.task.id=xign4i5kxc0mfp1pji7zzkoo1, com.docker.swarm.task.name=nginx.1.xign4i5kxc0mfp1pji7zzkoo1, image=registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1@sha256:b223de06038b1187d1d1b955df759839712a10cde33d7f2784ef3f9f5573ad71, name=nginx.1.xign4i5kxc0mfp1pji7zzkoo1) 2017-08-16T16:50:05.720425867+08:00 network connect i6xug49nwdsxauqqpli3apvym (container=2132a1bd9287bc377f0800d9a06e6876aaddb9a71b0afd567c3838fbb6aa3934, name=ingress, type=overlay) 2017-08-16T16:50:05.808884815+08:00 network disconnect i6xug49nwdsxauqqpli3apvym (container=2132a1bd9287bc377f0800d9a06e6876aaddb9a71b0afd567c3838fbb6aa3934, name=ingress, type=overlay) 2017-08-16T16:50:05.919636688+08:00 network create vxe1cwk14avlfp2xjgymhkhdl (name=my-network, type=overlay) 2017-08-16T16:50:06.102359133+08:00 network connect i6xug49nwdsxauqqpli3apvym (container=2132a1bd9287bc377f0800d9a06e6876aaddb9a71b0afd567c3838fbb6aa3934, name=ingress, type=overlay) 2017-08-16T16:50:06.453151382+08:00 network connect vxe1cwk14avlfp2xjgymhkhdl (container=2132a1bd9287bc377f0800d9a06e6876aaddb9a71b0afd567c3838fbb6aa3934, name=my-network, type=overlay) 2017-08-16T16:50:07.062684099+08:00 container start 2132a1bd9287bc377f0800d9a06e6876aaddb9a71b0afd567c3838fbb6aa3934 (com.docker.swarm.node.id=y83k6khc3vxmch1qd3j8kl4ak, com.docker.swarm.service.id=63c04khgjl033syhc5ef0e9g9, com.docker.swarm.service.name=nginx, com.docker.swarm.task=, com.docker.swarm.task.id=y00kqcu26sq75js3fvpqx4kt5, com.docker.swarm.task.name=nginx.1.y00kqcu26sq75js3fvpqx4kt5, image=registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1@sha256:b223de06038b1187d1d1b955df759839712a10cde33d7f2784ef3f9f5573ad71, name=nginx.1.y00kqcu26sq75js3fvpqx4kt5) 2017-08-16T16:51:07.221879814+08:00 container exec_create: /bin/sh -c curl -f http://localhost/ || exit 1 2132a1bd9287bc377f0800d9a06e6876aaddb9a71b0afd567c3838fbb6aa3934 (com.docker.swarm.node.id=y83k6khc3vxmch1qd3j8kl4ak, com.docker.swarm.service.id=63c04khgjl033syhc5ef0e9g9, com.docker.swarm.service.name=nginx, com.docker.swarm.task=, com.docker.swarm.task.id=y00kqcu26sq75js3fvpqx4kt5, com.docker.swarm.task.name=nginx.1.y00kqcu26sq75js3fvpqx4kt5, image=registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1@sha256:b223de06038b1187d1d1b955df759839712a10cde33d7f2784ef3f9f5573ad71, name=nginx.1.y00kqcu26sq75js3fvpqx4kt5) [root@swarm-node1 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2132a1bd9287 registry.cn-hangzhou.aliyuncs.com/vnimos/nginx:v1 "nginx -g 'daemon ..." 31 minutes ago Up 30 minutes (healthy) 80/tcp nginx.1.y00kqcu26sq75js3fvpqx4kt5 constraint & placement lable [root@swarm-manager ~]# docker node update --label-add project=nginx swarm-node2 [root@swarm-manager ~]# docker node update --label-add "datacenter=xiamen" swarm-node1 [root@swarm-manager ~]# docker node update --label-add "datacenter=fuzhou" swarm-node2 [root@swarm-manager ~]# docker node inspect -f {{.Spec.Labels}} swarm-node1 map[datacenter:xiamen] [root@swarm-manager ~]# docker node inspect -f {{.Spec.Labels}} swarm-node2 map[datacenter:fuzhou project:nginx] constraint [root@swarm-manager ~]# docker service create --replicas=4 --constraint 'node.hostname == swarm-node1' --name nginx-c1 nginx [root@swarm-manager ~]# docker service create --replicas=4 --constraint 'node.labels.project == nginx' --name nginx-c2 nginx [root@swarm-manager ~]# docker service ps nginx-c1 ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS sqcyg8wm8gdt nginx-c1.1 nginx:latest swarm-node1 Running Running 5 minutes ago ttst5umkpt6g nginx-c1.2 nginx:latest swarm-node1 Running Running 5 minutes ago lpiz1vsaj6p3 nginx-c1.3 nginx:latest swarm-node1 Running Running 5 minutes ago ykvrdyty4qie nginx-c1.4 nginx:latest swarm-node1 Running Running 5 minutes ago [root@swarm-manager ~]# docker service ps nginx-c2 ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS x322u16dfnyt nginx-c2.1 nginx:latest swarm-node2 Running Running 5 minutes ago zjp93whpf4ah nginx-c2.2 nginx:latest swarm-node2 Running Running 5 minutes ago ff3usxkpo5ae nginx-c2.3 nginx:latest swarm-node2 Running Running 5 minutes ago p3g0haaqg6yu nginx-c2.4 nginx:latest swarm-node2 Running Running 5 minutes ago placement [root@swarm-manager ~]# docker service create --replicas=6 --placement-pref 'spread=node.labels.datacenter' --name nginx-c3 nginx [root@swarm-manager ~]# docker service ps nginx-c3 ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS p3y7774kpu0w nginx-c3.1 nginx:latest swarm-node2 Running Running 3 minutes ago 081l22wh87ok nginx-c3.2 nginx:latest swarm-node1 Running Running 3 minutes ago lj1t30mok3te nginx-c3.3 nginx:latest swarm-node1 Running Running 3 minutes ago fhb90j6brwuv nginx-c3.4 nginx:latest swarm-node2 Running Running 3 minutes ago ein699law198 nginx-c3.5 nginx:latest swarm-node2 Running Running 3 minutes ago vo91976o481m nginx-c3.6 nginx:latest swarm-node1 Running Running 3 minutes ago deploy Docker1.13推出了一个新版本的Docker Compose(V3)。该版本的主要特征是,允许Swarm Mode使用Docker Compose文件定义直接部署服务。 定义compose-file [root@swarm-manager ~]# cat docker-compose.yml version: '3' services: mysql: image: mysql environment: - MYSQL_ROOT_PASSWORD=password wordpress: image: wordpress ports: - 80:80 links: - mysql:mysql environment: - WORDPRESS_DB_PASSWORD=password 在Swarm Mode下,需要使用docker stack deploy命令进行部署,如果直接使用docker-compose up则将会出现如下警告: [root@swarm-manager ~]# docker-compose up WARNING: The Docker Engine you're using is running in swarm mode. Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node. To deploy your application across the swarm, use `docker stack deploy`. 通过compose-file部署多个Service # docker stack deploy --compose-file=docker-compose.yml demo# docker stack ps demo5.1366.14# docker stack services demo11808011,如需转载请自行联系原作者

优秀的个人博客,低调大师

Hadoop的管理目录

HDFS文件结构 1、NameNode的文件结构,NameNode会创建VERSION、edits、fsimage、fstime文件目录。其中dfs.name.dir属性是一个目录列表,是每个目录的镜像文件。VERSION文件是JAVA属性文件,其中包含运行HDFS的版本信息。包含内容: 其中,namespaceID是文件系统的唯一标识符,当文件系统第一次格式化时,便会被创建,这个标识符是必须跟各DataNode及诶单和NameNode保持一致。NameNode会使用它识别新的DataNode,DataNode只有在向NameNode注册后才会获得此namespaceID。cTime属性标记了NameNode存储空间创建的时间。对于新格式化的,这里时间为0,只要文件系统被更新,就会更新到一个新的时间戳上。StorageType指出此存储目录包含一个NameNode的数据结构,在DataNode中它的属性值为DATA_NODE. LayoutVersion是一个负的整数,定义了HDFS持久数据结构的版本。各节点的版本号要一致。 在NameNode的存储目录中还包含edits、fsimage、fstime三个文件,它们都是二进制的文件,可以通过HadoopWritable对象进行序列化。 2、编辑日志(edit log)及文件系统映像(filesystem image) (1)当客户执行写操作时,首先NameNode会在编辑日志中写下记录,并在内存中保存一个文件系统元数据,这个描述符在编辑日志有了改动后更新,内存中的元数据用来提供读数据请求服务。 (2)编辑日志会在每次成功操作之后,且成功代码尚未返回给客户端之前进行刷新和同步。对于要写入多个目录的操作,写入流要刷新和同步到所有的副本上,保证操作不会因为故障而丢失数据。 (3)fsimage文件是文件系统元数据的持久性检查点,和编辑日志不同,它不会在每个文件系统写操作后进行更新,因为如果NameNode失败,那么元数据的最新状态可以通过从磁盘中读取fsimage文件加载到内存中来进行重建恢复,然后进行编辑日志中的操作(NameNode启动时也做的事情)。一个fsimage文件中包含以序列化格式存储的文件系统目录和文件inodes.每个inodes表征一个文件或目录的元数据信息,以及文件的副本数、修改和访问时间等信息。 Hadoop在NameNode之外的节点上运行了一个Secondary NameNode进程,它的任务是为原NameNode内存中的文件系统元数据产生检查点。是一个辅助NameNode处理fsimage和编辑日志的节点,它从NameNode中拷贝fsimage和编辑日志到零食目录合并成一个新的fsimage,随后会将新的fsimage上传到NameNode,这样NameNode便可更新fsimage并删除原来的编辑日志了。 NameNode在安全模式下,可通过以下命令运行这个过程: hadoop dfsadmin -saveNamespace

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册