GVKun编程网logo

对比homeassistant和智汀家庭云之docker安装部署篇

14

如果您想了解对比homeassistant和智汀家庭云之docker安装部署篇的相关知识,那么本文是一篇不可错过的文章,我们将为您提供关于AppleHomeKit和智汀家庭云:基本的智能家居互联指南、

如果您想了解对比homeassistant和智汀家庭云之docker安装部署篇的相关知识,那么本文是一篇不可错过的文章,我们将为您提供关于Apple HomeKit 和 智汀家庭云:基本的智能家居互联指南、CentOS6.8下docker安装部署、Centos7.3 Docker安装部署学习记录1、docker安装elasticsearch,docker安装kibana的有价值的信息。

本文目录一览:

对比homeassistant和智汀家庭云之docker安装部署篇

对比homeassistant和智汀家庭云之docker安装部署篇

 简介

本篇教程,带你了解Home Assistan和智汀家庭云的初步安装部署,如同很多开源项目,Home Assistant 就是常见的一款,作为国外开源软件,需要去阅读大量的英文文档,在编辑器里编辑自己的配置文件、手动添加智能设备、自定义每一个细节,这巨大的工作量使人望而却步。

而今天我们来介绍下国内的开源软件,智汀家庭云结合国内所有智能家居各厂商软件特点,提供一个跨品牌跨种类且对不同厂家各种智能设备进行统一控制和管理的全生态开源协议(Apache License, Version 2.0)的软件,提供不同品牌插件包,实现各种智能设备的接入,并多平台兼容你能够非常方便的安装与管理一些之前需要在命令行环境下部署的功能。

接下来我们对比下Home Assistant和智汀家庭的安装部署上有什么优劣势?到底是哪个相对比较简捷好用,在这里以Docker举例,首先看智汀的。

 

一、安装智汀家庭云

1. 设备准备

  • linux主机
  • docker
  • docker-compose

2. 创建一个目录作为SA运行的根目录,并在该目录中创建docker-compose.yaml文件。

version: "3.9"

services:
  zt-nginx:
    image: docker.yctc.tech/zt-nginx:3.0 
    ports:
      - 9010:9010
      - 9020:9020
      - 9030:9030
    depends_on:
      - smartassistant
  etcd:
    image: bitnami/etcd:3
    environment:
      - ALLOW_NONE_AUTHENTICATION=yes
      - ETCD_GRPC_KEEPALIVE_TIMEOUT=10s
      - ETCD_GRPC_KEEPALIVE_INTERVAL=10s
    ports:
      - 2379:2379
      - 2380:2380
  fluentd:
    image: fluent/fluentd:v1.13
    ports:
      - "24224:24224"
      - "24224:24224/udp"

  smartassistant:
    image: docker.yctc.tech/smartassistant:1.4.0
    ports:
      - "37965:37965"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - etcd

输入以下命令启动服务:

docker-compose up

3. 运行脚本SA所需环境

  • awk命令
  • openssl
  • root用户权限

 4.执行./build/install/install.sh

5. 填写配置并确认

6. 然后成功安装完成了

7. 检查运行情况

8. 服务启动后可以通过以下命令检查SA的状态:

curl http://localhost:37965/api/check

如果返回以下内容则说明服务已运行起来并且未被绑定

{"status":0,"reason":"成功","data":{"is_bind":false,"revision":""}}

 

二、安装 Home Assistant

首先在homeassistant官方文档中,提供四种不同的安装方法:

  • 直接在硬件设备上安装 Home Assistant系统;
  • 通过 Docker 这类的容器来安装;
  •   在传统的 Linux 发行版机器上手动安装;
  • 在 Python 虚拟环境中安装 如果您使用的是 Docker,那么您需要至少使用版本 19.03.9,理想情况下是更高的版本,以及 2.42 或更高版本。

 

安装步骤如下:
1.在套件中心搜索Docker,然后就能够找到对应套件,直接点击安装即可。

 
2. 打开Docker套件,在注册表中搜索homeassistant,然后选择第一个下载即可。

 

3.再镜像中找到刚刚下载得镜像,选择并点击启动。

 

4. 在第一个窗口中设置名称,然后点击高级设置。

 

5. 在高级设置中勾选”启动自动重新启动“。

 

6. 在卷中选择添加文件夹,并做如下设置。最后点击应用即可。

 

7. 环境,添加一个变量。点击+,添加变量为TZ,值为Asia/Shanghai。这里添加的是时区。然后点击下一步。

 

8. 点击应用,此时就能够启动容器了。

9·最后在容器中就能够看到已经启动的容器了。

 

10. 在容器中选中HomeAssistant容器,然后选择上面的操作,即可看到重启选项。之后就是通过ip+端口的形式访问HomeAssistant。ip为NAS的主机IP,端口默认为8123,登录即可。

 

 

总结

总的来说,homeassistant和智汀家庭两者之间相比较,在某种程度上还是存在不同的,第一方面:homeassistant安装部署比智汀家庭云步骤多且复杂;另外一方面:homeassistant只能够在局域网内访问,无法实现从外网进入访问,而对比智汀家庭云除了能够使用局域网外,在断网的情况下局域网依旧能够正常实现智能设备运行;第三方面就是homeassistant只支持苹果手机接入HomeKit的智能设备,极少有能够通过安卓手机接入(除了国内Aqara)。

Apple HomeKit 和 智汀家庭云:基本的智能家居互联指南

Apple HomeKit 和 智汀家庭云:基本的智能家居互联指南

 大家都知道:在智能系统或通过 HomeKit来使用 Siri 语音命令来控制任何的智能家居设备。或者,仅在系统中设置一个程序,让房中的窗帘在设定的时间自动打开或关闭。通过 HomeKit 的“场景和规则”,您可以将门窗与灯泡等其他智能设备同步。

 

 

尽管HomeKit平台属于最早发布的,但它落后于其他一些生态系统。这是因为,虽然竞争对手不断推出新的智能套件,但 Apple 更愿意将 HomeKit 留给第三方制造商……在使用过程中,你会发现HomeKit 设备比许多竞争对手的智能家居系统数量更少,价格更高,而且苹果的 Home 应用程序感觉有点过时。

 

但当面对国内的智能设备时,你会发现某些 Hue 灯泡根本无法与 Siri 或HomeKit一起使用,但可以从 Home 应用程序中正常激活。Hue 灯泡就是一个很好的例子:虽然 Home 应用程序可以轻松激活特定的灯泡和场景,但专用的 Hue 应用程序具有更多功能和选项。

 

 

以上背景,为什么消费者还是更加热衷于HomeKit呢?主要归终于两点:一是HomeKit最早出现在消费者的视线中,面对当时刚出现人工智能、智能扫地机器人等产品,所以在人们脑中就形成了一种能够让家庭实现智能化;二是HomeKit的概念,深受消费者喜欢,对于当时来讲,能够实现设备之间的互联,是一件的非常难的事,尤其面对国内来讲;所以HomeKit的出现的时间节点,超越其他的智能生态。

接下来,我们就来看下Apple HomeKit与TP-link基本的智能家居互联指南教程!

第一步,首先要在App中添加好连接的插件,我们点击支持品牌

 

第二步,在支持品牌页中,我们陆续的添加好HomeKit和TP-link品牌的插件

 

第三步,以上操作做好后,返回主页,点击右上方+,选择我们要添加的设备

 

第四步,其次在返回到场景,点击右上方+,创建场景

 

第五步,在场景中,我们依次创建场景名、添加触发条件、添加执行任务

 

第六步,最后在执行任务页面中,还是依次选择执行任务设备、控制设备;然后就是完成创建

 

CentOS6.8下docker安装部署

CentOS6.8下docker安装部署

1 docker简介

Docker 提供了一个可以运行你的应用程序的封套(envelope),或者说容器。它原本是 dotCloud 启动的一个业余项目,并在前些时候开源了。它吸引了大量的关注和讨论,导致 dotCloud 把它重命名到 Docker Inc。它最初是用 Go 语言编写的,它就相当于是加在 LXCLinuX Containerslinux 容器)上的管道,允许开发者在更高层次的概念上工作。

Docker 扩展了 Linux 容器(Linux Containers),或着说 LXC,通过一个高层次的 API 为进程单独提供了一个轻量级的虚拟环境。Docker 利用了 LXCcgroups Linux 自己的内核。和传统的虚拟机不同的是,一个 Docker 容器并不包含一个单独的操作系统,而是基于已有的基础设施中操作系统提供的功能来运行的。

Docker类似虚拟机的概念,但是与虚拟化技术的不同点在于下面几点:

1.虚拟化技术依赖物理cpu和内存,是硬件级别的;而docker构建在操作系统上,利用操作系统的containerization技术,所以docker甚至可以在虚拟机上运行。

2.虚拟化系统一般都是指操作系统镜像,比较复杂,称为“系统”;而docker开源而且轻量,称为“容器”,单个容器适合部署少量应用,比如部署一个redis、一个memcached

3.传统的虚拟化技术使用快照来保存状态;而docker在保存状态上不仅更为轻便和低成本,而且引入了类似源代码管理机制,将容器的快照历史版本一一记录,切换成本很低。

4.传统的虚拟化技术在构建系统的时候较为复杂,需要大量的人力;而docker可以通过Dockfile来构建整个容器,重启和构建速度很快。更重要的是Dockfile可以手动编写,这样应用程序开发人员可以通过发布Dockfile来指导系统环境和依赖,这样对于持续交付十分有利。

5.Dockerfile可以基于已经构建好的容器镜像,创建新容器。Dockerfile可以通过社区分享和下载,有利于该技术的推广。

Docker 会像一个可移植的容器引擎那样工作。它把应用程序及所有程序的依赖环境打包到一个虚拟容器中,这个虚拟容器可以运行在任何一种 Linux 服务器上。这大大地提高了程序运行的灵活性和可移植性,无论需不需要许可、是在公共云还是私密云、是不是裸机环境等等。

Docker也是一个云计算平台,它利用LinuxLXCAUFUGo语言、cgroup实现了资源的独立,可以很轻松的实现文件、资源、网络等隔离,其最终的目标是实现类似PaaS平台的应用隔离。

Docker 由下面这些组成:

1. Docker 服务器守护程序(server daemon),用于管理所有的容器。

2. Docker 命令行客户端,用于控制服务器守护程序。

3. Docker 镜像:查找和浏览 docker 容器镜像。

2 docker特性

文件系统隔离:每个进程容器运行在完全独立的根文件系统里。

资源隔离:可以使用cgroup为每个进程容器分配不同的系统资源,例如cpu和内存。

网络隔离:每个进程容器运行在自己的网络命名空间里,拥有自己的虚拟接口和IP地址。

写时复制:采用写时复制方式创建根文件系统,这让部署变得极其快捷,并且节省内存和硬盘空间。

日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。

变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。

交互式ShellDocker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互shell

3 两个基础概念imagescontainer

ContainerImage Docker的世界里,Image是指一个只读的层(Layer),这里的层是AUFS里的概念,最直观的方式就是看一下docker官方给出的图:

wKioL1fYslfBEGRaAAG4sTb3Sbo843.png-wh_50

Docker使用了一种叫AUFS的文件系统,这种文件系统可以让你一层一层地叠加修改你的文件,最底下的文件系统是只读的,如果需要修改文件,AUFS会增加一个可写的层(Layer),这样有很多好处,例如不同的Container可以共享底层的只读文件系统(同一个Kernel),使得你可以跑N多个Container而不至于你的硬盘被挤爆了!这个只读的层就是Image!而如你所看到的,一个可写的层就是Container

ImageContainer的区别是什么?很简单,他们的区别仅仅是一个是只读的层,一个是可写的层,你可以使用docker commit 命令,将你的Container变成一个Image,也就是提交你所运行的Container的修改内容,变成一个新的只读的Image,这非常类似于git commit命令。

4 docker安装与启动

安装docker

# yum install docker-io

更改配置文件:

# vi /etc/sysconfig/docker

other-args列更改为:other_args="--exec-driver=lxc --selinux-enabled"

启动docker服务:

# servicedockerstart

docker加入开机启动:

# chkconfig docker on

基本信息查看

docker version:查看docker的版本号,包括客户端、服务端、依赖的Go

# docker version

docker info :查看系统(docker)层面信息,包括管理的images,containers数等

# docker info

5 镜像的获取与容器的使用

镜像可以看作是包含有某些软件的容器系统,比如ubuntu就是一个官方的基础镜像,很多镜像都是基于这个镜像“衍生”,该镜像包含基本的ubuntu系统。再比如,hipache是一个官方的镜像容器,运行后可以支持httpwebsocket的代理服务,而这个镜像本身又基于ubuntu

搜索镜像:

docker search <image>:在docker index中搜索image

# docker search ubuntu12.10

下载镜像:

docker pull <image> :从docker registry server 中下拉image

# docker pull chug/ubuntu12.10x64

注意:这种下载方式会出现跨洋网络延迟,下载速度很慢,或者下载失败。此时可以使用国内DaoCloud团队提供的服务Docker Hub Mirror,到DaoCloud官网注册账号,获得镜像下载路径,如下:

wKiom1fYsnCwxqYNAAB7lGXgLy0209.png-wh_50

# docker pull daocloud.io/library/ubuntu:precise-20160819 //下次下载需要新的链接。

查看镜像

docker images: 列出images

docker images -a :列出所有的images(包含历史)

docker images --tree :显示镜像的所有层(layer)

docker rmi <image ID>: 删除一个或多个image

使用镜像创建容器

# docker run docker pull daocloud.io/library/ubuntu:precise-20160819 /bin/echo hello world

hello world

交互式运行

# docker run -i -t docker pull daocloud.io/library/ubuntu:precise-20160819 /bin/bash

root@2161509ff65e:/#

查看容器

docker ps :列出当前所有正在运行的container

docker ps -l :列出最近一次启动的container

docker ps -a :列出所有的container(包含历史,即运行过的container

docker ps -q :列出最近一次运行的container ID

再次启动容器

docker start/stop/restart <container> :开启/停止/重启container

docker start [container_id] :再次运行某个container (包括历史container

docker attach [container_id] :连接一个正在运行的container实例(即实例必须为start状态,可以多个窗口同时attach 一个container实例)

docker start -i <container> :启动一个container并进入交互模式(相当于先start,在attach

docker run -i -t <image> /bin/bash :使用image创建container并进入交互模式,login shell/bin/bash

docker run -i -t -p <host_port:contain_port> :映射 HOST 端口到容器,方便外部访问容器内服务,host_port 可以省略,省略表示把 container_port 映射到一个动态端口。

注:使用start是启动已经创建过得container,使用run则通过image开启一个新的container

删除容器

docker rm <container...> :删除一个或多个container

docker rm `docker ps -a -q` :删除所有的container

docker ps -a -q | xargs docker rm :同上,删除所有的container

6 持久化容器与镜像

6.1 通过容器生成新的镜像

运行中的镜像称为容器。你可以修改容器(比如删除一个文件),但这些修改不会影响到镜像。不过,你使用docker commit <container-id> <image-name>命令可以把一个正在运行的容器变成一个新的镜像。

docker commit <container> [repo:tag] 将一个container固化为一个新的image,后面的repo:tag可选。

6.2 持久化容器

export命令用于持久化容器

docker export <CONTAINER ID> > /tmp/export.tar

6.3 持久化镜像

Save命令用于持久化镜像

docker save 镜像ID > /tmp/save.tar

6.4 导入持久化container

# cat /tmp/export.tar | docker import - export:latest

6.5 导入持久化image

# docker load < /tmp/save.tar

imagetag

# docker tag daa11948e23d load:tag

6.6 一些其它命令

docker logs $CONTAINER_ID #查看docker实例运行日志,确保正常运行

docker inspect $CONTAINER_ID #docker inspect <image|container> 查看imagecontainer的底层信息

docker build <path> 寻找path路径下名为的Dockerfile的配置文件,使用此配置生成新的image

docker build -t repo[:tag] 同上,可以指定repo和可选的tag

docker build - < <dockerfile> 使用指定的dockerfile配置文件,dockerstdin方式获取内容,使用此配置生成新的image

docker port <container> <container port> 查看本地哪个端口映射到container的指定端口,其实用docker ps 也可以看到.

7 一些使用技巧

Docker实际上把所有东西都放到/var/lib/docker路径下了。

# ls -F

containers/ devicemapper/ execdriver/ graph/ init/ linkgraph.db repositories-devicemapper volumes/

containers目录当然就是存放容器(container)了,graph目录存放镜像,文件层(file system layer)存放在graph/imageid/layer路径下,这样我们就可以看看文件层里到底有哪些东西,利用这种层级结构可以清楚的看到文件层是如何一层一层叠加起来的。

Centos7.3 Docker安装部署学习记录1

Centos7.3 Docker安装部署学习记录1

一、Docker基础环境的安装

1. 环境说明

本机采用操作系统如下: CentOS-7.3-X86-64,内核3.10 x64位,docker 1.12.x版本。
建议采用CentOS7版本或ubuntu版本,本文采用CentOS7即CentOS-7-x86_64-DVD-1611.iso版本最小化安装。
Docker可以在虚拟机环境中运行进行使用测试。本文出自:http://koumm.blog.51cto.com/

2. 主机网络

1)关闭firewalld防火墙和SELinux
setenforce 0
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux

systemctl disable firewalld
systemctl stop firewalld

docker是必须要防火墙功能模块的,个人目前用iptables

systemctl disable iptables.service
systemctl stop iptables.service

注意最小化需要补充安装的软件包:
yum install vim net-tools iptables-config


2)配置hosts文件(主机名称)
echo "192.168.1.90 docker1" >> /etc/hosts

3. 安装Docker软件包

1)可以直接安装包yum源
# yum install -y docker

2)配置docker开机自启动以及启动服务
# systemctl start docker.service
# systemctl enable docker.service

3)查看docker服务器,表示docker已安装成功

查看版本:docker version
帮助信息:docker --help
概要信息:docker info
镜像查看:docker images
进程查看:docker ps -a
搜索镜像:docker search centos #搜索可用docker镜像

示例: 表示docker已安装成功。

[root@docker1~]#dockerinfo

Containers:4
Running:0
Paused:0
Stopped:4
Images:3
ServerVersion:1.12.6
StorageDriver:devicemapper
PoolName:docker-253:0-16798063-pool
PoolBlocksize:65.54kB
BaseDeviceSize:10.74GB
backingFilesystem:xfs
Datafile:/dev/loop0
Metadatafile:/dev/loop1
DataSpaceUsed:849.3MB
DataSpacetotal:107.4GB
DataSpaceAvailable:15.27GB
MetadataSpaceUsed:1.937MB
MetadataSpacetotal:2.147GB
MetadataSpaceAvailable:2.146GB
ThinPoolMinimumFreeSpace:10.74GB
UdevSyncSupported:true
DeferredRemovalEnabled:false
DeferredDeletionEnabled:false
DeferredDeletedDeviceCount:0
Dataloopfile:/var/lib/docker/devicemapper/devicemapper/data
WARNING:Usageofloopbackdevicesisstronglydiscouragedforproductionuse.Use`--storage-optdm.thinpooldev`tospecifyacustomblockstoragedevice.
Metadataloopfile:/var/lib/docker/devicemapper/devicemapper/Metadata
LibraryVersion:1.02.135-RHEL7(2016-09-28)
LoggingDriver:journald
CgroupDriver:systemd
Plugins:
Volume:local
Network:bridgehostnulloverlay
Swarm:inactive
Runtimes:docker-runcrunc
DefaultRuntime:docker-runc
SecurityOptions:seccomp
KernelVersion:3.10.0-514.el7.x86_64
OperatingSystem:CentOSLinux7(Core)
OSType:linux
Architecture:x86_64
NumberofDockerHooks:2
cpus:2
TotalMemory:984.8MiB
Name:docker1
ID:YZZ7:NRHH:WJM7:PYUR:DGRH:4MLD:4GT4:UR2I:5PUZ:EAGS:P4Z2:JSL4
DockerRootDir:/var/lib/docker
DebugMode(client):false
DebugMode(server):false
Registry:https://index.docker.io/v1/
InsecureRegistries:
127.0.0.0/8
Registries:docker.io(secure)


二、Docker使用基础

1. 下载docker基础镜像

1)搜索centos基础镜像

[root@docker1~]#dockersearchcentos
INDEXNAMEDESCRIPTIONSTARSOFFICIALAUTOMATED
docker.iodocker.io/centosTheofficialbuildofCentOS.3362[OK]
docker.iodocker.io/jdeathe/centos-sshCentOS-66.9x86_64/CentOS-77.3.1611x8...69[OK]
docker.iodocker.io/nimmis/java-centosThisisdockerimagesofCentOS7withdif...26[OK]
docker.iodocker.io/gluster/gluster-centosOfficialglusterFSImage[CentOS-7+glu...19[OK]
docker.iodocker.io/million12/centos-supervisorBaseCentOS-7withsupervisordlauncher,h...16[OK]
docker.iodocker.io/kinogmt/centos-sshCentOSwithSSH13[OK]
docker.iodocker.io/egyptianbman/docker-centos-Nginx-PHPAsimpleandhighlyconfigurabledockerco...9[OK]
docker.iodocker.io/torusware/speedus-centosAlwaysupdatedofficialCentOSdockerimag...8[OK]
docker.iodocker.io/centos/mariadb55-centos75[OK]
docker.iodocker.io/nathonfowlie/centos-jreLatestCentOSimagewiththeJREpre-insta...5[OK]
docker.iodocker.io/darksheer/centosBaseCentosImage--Updatedhourly3[OK]
docker.iodocker.io/harisekhon/centos-javaJavaonCentOS(OpenJDK,tagsjre/jdk7-8)2[OK]
docker.iodocker.io/harisekhon/centos-scalaScala+CentOS(OpenJDKtags2.10-jre7-2...2[OK]
docker.iodocker.io/blacklabelops/centosCentOSBaseImage!BuiltandUpdatesDaily!1[OK]
docker.iodocker.io/freenas/centosSimpleCentOSLinuxinteractivecontainer1[OK]
docker.iodocker.io/sgfinans/docker-centosCentOSwitharunningsshdandDocker1[OK]
docker.iodocker.io/timhughes/centosCentoswithsystemdinstalledandrunning1[OK]
docker.iodocker.io/vorakl/centosCentOS7,EPEL,tools.Updated/Testeddaily!1[OK]
docker.iodocker.io/grossws/centosCentOS6and7baseimageswithgosuandl...0[OK]
docker.iodocker.io/januswel/centosyumupdate-edCentOSimage0[OK]
docker.iodocker.io/kz8s/centosOfficialCentOSplusepel-release0[OK]
docker.iodocker.io/labengine/centosCentosimagebase0[OK]
docker.iodocker.io/repositoryjp/centosDockerImageforCentOS.0[OK]
docker.iodocker.io/vcatechnology/centosACentOSImagewhichisupdateddaily0[OK]
docker.iodocker.io/wenjianzhou/centoscentos0[OK]
[root@docker1~]#


2)下载centos基础镜像

本文采用官方默认镜像仓库下载。

[root@docker1 ~]# docker pull centos

Using default tag: latest
Trying to pull repository docker.io/library/centos ...
latest: Pulling from docker.io/library/centos
343b09361036: Pull complete
Digest: sha256:bba1de7c9d900a898e3cadbae040dfe8a633c06bc104a0df76ae24483e03c077

下载其它示例:下载支持ssh服务器的centos镜像

[root@docker1~]#dockerpulljdeathe/centos-ssh
Usingdefaulttag:latest
Tryingtopullrepositorydocker.io/jdeathe/centos-ssh...
latest:Pullingfromdocker.io/jdeathe/centos-ssh
45a2e645736c:Pullcomplete
f0d571ff94cf:Pullcomplete
ea228e12ac20:Pullcomplete
edd63eef0a83:Pullcomplete
27c3eb39991d:Pullcomplete
4bf26ef9f3dd:Pullcomplete
4e572750aff7:Pullcomplete
b94a26882ae9:Pullcomplete
91ee52de11b1:Pullcomplete
e89f8a480c42:Pullcomplete
bd26710715b3:Pullcomplete
75c421c47829:Pullcomplete
f6eabaf37913:Pullcomplete
Digest:sha256:c80d3b79c853ce41a993cfa76f1b5983dffeb08aceefaaf04d64c9dc2e177d8e


2. 通过导出、导入的方式部署基础镜像

#官方镜像的下载很慢,有时多次尝试才能下载。

方法一:

#一台已经下载的好的镜像的服务器上操作。

docker save centos > /opt/centos.tar #Docker导出镜像
docker load < /opt/centos.tar #Docker导入镜像

方法二:

docker export id > /opt/centos.tar #Docker导出镜像
cat /opt/centos.tar | docker import centos #Docker导入镜像


*注1:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。
*注2:容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。
此外,从容器快照文件导入时可以重新指定标签等元数据信息。


3. 查看下载的基础镜像

[root@docker1~]#dockerimages
-----------------------------------------------------------------------------------------------------
REPOSITORYTAGIMAGEIDCREATEDSIZE
docker.io/jdeathe/centos-sshlatest1d551d635e994daysago214MB
docker.io/centoslatest8140d0c643102weeksago192.5MB

说明 :
REPOSITORY:来自于哪个仓库,比如 centos
TAG : 镜像的标记,一般修改版本号,latest为最后版本
IMAGE ID : 镜像的id号
CREATED : 创建镜像的时间
SIZE : 镜像的大小

4. 通过基础镜像创建一个容器

1)通过基础镜像centos创建一个容器名为centos_v1,并在后台执行

[root@docker1 ~]# docker run -it -d --name centos_v1 centos /bin/bash
0c1841e5d1115d35b80177ed5ea4fc5782e8a3ffc5f5c801979fb90ac5f26423

常用参数说明:
-i: 开启交互式shell
-t: 为容器分配一个伪tty终端
centos: 指定镜像的名字
/bin/bash: 运行/bin/bash


2) 查看容器

[root@docker1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0c1841e5d111 centos "/bin/bash" 7 seconds ago Up 4 seconds centos_v1

查看docker镜像的状态,-a表示列出所有的容器,STATUS如果为Exited为退出,UP为运行。


3)进入容器

[root@docker1 ~]# docker exec -it centos_v1 /bin/bash

提示符变成了0c1841e5d111,也是该容器的ID,也是该容器的主机名。

[root@0c1841e5d111 /]# ls
anaconda-post.log bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var

[root@0c1841e5d111 /]# hostname
0c1841e5d111


4)退出容器

[root@0c1841e5d111 /]# exit
exit
[root@docker1 ~]#


5. 查看容器状态

[root@docker1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0c1841e5d111 centos "/bin/bash" About an hour ago Up About an hour centos_v1


6. 关闭与启动容器

关闭容器

[root@docker1 ~]# docker stop centos_v1
centos_v1

[root@docker1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0c1841e5d111 centos "/bin/bash" About an hour ago Exited (137) 3 seconds ago centos_v1

说明:STATUS状态为EXIT表示容器是退出状态。


启动容器

[root@docker1 ~]# docker start centos_v1
centos_v1

[root@docker1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0c1841e5d111 centos "/bin/bash" About an hour ago Up 3 seconds centos_v1
[root@docker1 ~]#
[root@docker1 ~]#


7. 删除容器

1)删除容器(通过镜像ID与镜像名称均可)

[root@docker1 ~]# docker rm centos_v1 或 docker rm 0c1841e5d111

2)对于正在运行的容器,可以加-f参数强制进行删除。

[root@docker1 ~]# docker rm -f centos_v1


8. 通过一个容器创建镜像

说明:只能对运行中的容器提交本地镜像,关闭状态的容器无法提交本地镜像。

1)通过容器提交镜像

[root@docker1 ~]# docker commit centos_v1 centos:v1
sha256:66d2dc12144a87def3c16080553cca41d2a2965d9332f2a085dc23cc30366afa

[root@docker1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos v1 66d2dc12144a 6 seconds ago 192.5 MB
docker.io/jdeathe/centos-ssh latest 1d551d635e99 4 days ago 214 MB
docker.io/centos latest 8140d0c64310 2 weeks ago 192.5 MB


2)删除镜像(通过镜像ID与镜像名称均可)

[root@docker1 ~]# docker rmi centos:v1

[root@docker1 ~]# docker rmi 66d2dc12144a

Untagged: centos:v1
Deleted: sha256:66d2dc12144a87def3c16080553cca41d2a2965d9332f2a085dc23cc30366afa
Deleted: sha256:9c6100b12798ef72aeb16c13d3d8da8bef0a060d3162f068ea8730025e3508ea


9. 示例:创建一个提供apache服务器的容器

1)通过最基础镜像创建一个容器,用于制做

[root@docker1 ~]# docker run -it -d --name abc centos /bin/bash
[root@docker1 ~]# docker exec -it httpd-80 /bin/bash

# yum install net-tools httpd -y


2) 通过httpd-80容器制一个http本地镜像

[root@docker1 ~]# docker commit httpd-80 centos:apache


3) 通过centos:apache镜像可以创建很多个容器

参数说明:-p 80:80 映射本地端口到容器的对应端口上,可以配置多个端口。

[root@docker1~]#dockerrun-it-d-p8082:80--nameapache-8082centos:apache/usr/sbin/apachectl-DFOREGROUND
1fb934170108b66fcdfa7c77f6673d33aca44fac63ca0b61b35f06519c3ef242
[root@docker1~]#dockerrun-it-d-p8081:80--nameapache-8081centos:apache/usr/sbin/apachectl-DFOREGROUND
cc4e7689db7bd5674f131782c470cf640594d298dbc88b680fc3caeb77bce256
[root@docker1~]#dockerrun-it-d-p8080:80--nameapache-8080centos:apache/usr/sbin/apachectl-DFOREGROUND
da494401dd34f843dac50e67a1a1c3077b44f9faeadff3403e50196fe4ce5318
[root@docker1~]#dockerps-a
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
da494401dd34centos:apache"/usr/sbin/apachectl"5secondsagoUp4seconds0.0.0.0:8080->80/tcpapache-8080
cc4e7689db7bcentos:apache"/usr/sbin/apachectl"17secondsagoUp15seconds0.0.0.0:8081->80/tcpapache-8081
1fb934170108centos:apache"/usr/sbin/apachectl"26secondsagoUp25seconds0.0.0.0:8082->80/tcpapache-8082
f4b6bffcca1bcentos"/bin/bash"8minutesagoUp8minuteshttpd-80
[root@docker1~]#

docker安装elasticsearch,docker安装kibana

docker安装elasticsearch,docker安装kibana

一 、elasticsearch安装

1.docker获取es的镜像

docker pull elasticsearch:7.12.1

2.创建es文件目录以及创建配置文件 

mkdir /docker/es/conf
mkdir /docker/es/data
mkdir /docker/es/plugins

3.创建配置文件

touch /docker/es/conf/elasticsearch.yml

4.配置文件内容

cluster.name: my-application
node.name: node-1 #节点名称
#数据和日志的存储目录
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
###设置绑定的ip,设置为0.0.0.0以后就可以让任何计算机节点访问到了 
network.host: 0.0.0.0
http.port: 9200 #端口
###设置在集群中的所有节点名称,这个节点名称就是之前所修改的,当然你也可以采用默认的也行,目前 是单机,放入一个节点即可
cluster.initial_master_nodes: ["node-1"]
indices.fielddata.cache.size: 50%  #限制内存溢出

5.构建容器

docker run -p 9200:9200 -d --name es -e ES_JAVA_OPTS="-xms512m -Xmx512m" -v /docker/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/es/data:/usr/share/elasticsearch/data -v /docker/es/plugins:/usr/share/elasticsearch/plugins --privileged=true elasticsearch:7.12.1

6.出现异常:max virtual memory areas vm.max_map_count [65530] is too low,increase to at least [262144]

解决:

  1. 修改配置vi /etc/sysctl.conf

  2. 在尾行添加以下内容 vm.max_map_count=262144

  3. 执行命令 sysctl -p

7.在启动 docker start es 
二、kibana安装

1.拉取kibana镜像

docker pull kibana:7.12.1

2.配置文件

mkdir /docker/kibana
mkdir /docker/kibana/conf
touch /docker/kibana/conf/kibana.yml

3.配置文件 备注:http://172.17.0.5:9200为es的地址如

查看es ip地址命令

docker inspect es | grep "IPAddress"
server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://172.17.0.5:9200"]
xpack.monitoring.ui.container.elasticsearch.enabled: true

如果你需要中文版在配置文件里加入

i18n.locale: "zh-CN"

4.构建容器

docker run -p 5601:5601 -d --name kibana -v /docker/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml --privileged=true kibana:7.12.1

5.启动

docker start kibana

6.访问:

http://地址:5601


关于对比homeassistant和智汀家庭云之docker安装部署篇的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Apple HomeKit 和 智汀家庭云:基本的智能家居互联指南、CentOS6.8下docker安装部署、Centos7.3 Docker安装部署学习记录1、docker安装elasticsearch,docker安装kibana等相关知识的信息别忘了在本站进行查找喔。

本文标签: