docker安装及概述
docker命令大全:https://www.runoob.com/docker/docker-command-manual.html
docker官网下载地址:https://docs.docker.com/engine/install/centos/#installation-methods
要在CentOS上启动Docker引擎,请确保满足先决条件,然后安装Docker。
先决条件
操作系统要求
- 要安装Docker引擎,您需要维护的CentOS 7版本。不支持或测试存档版本。
- 必须启用centos extras存储库。默认情况下,此存储库已启用,但如果已禁用,则需要重新启用它。
- 建议使用overlay2存储驱动程序。
卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
旧版本的Docker称为Docker或Docker引擎。如果安装了这些程序,请卸载它们以及相关的依赖项。
/var/lib/docker/的内容(包括图像、容器、卷和网络)将被保留。Docker引擎包现在称为Docker ce。
使用存储库安装
首次在新主机上安装Docker引擎之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
设置存储库
安装yum utils包(它提供了yum config manager实用程序)并设置稳定的存储库。
$ sudo yum install -y yum-utils $ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装最新版本的Docker Engine和containerd,或转到下一步安装特定版本:
yum install docker-ce docker-ce-cli containerd.io
要安装特定版本的Docker Engine,请在repo中列出可用版本,然后选择并安装:
a、 列出并排序回购协议中可用的版本。此示例按版本号从高到低对结果进行排序,并被截断:
$ yum list docker-ce --showduplicates | sort -r docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
按其包名称(docker-ce))和版本字符串(第二列)安装特定版本,该字符串从第一个冒号(:)开始,直到第一个连字符,用连字符(—)分隔。例如docker-ce-18.09.1。
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
Docker已安装但未启动。docker组已创建,但没有用户添加到该组中。
启动Docker.
systemctl start docker
运行hello world映像,验证Docker引擎是否正确安装。
docker run hello-world
此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条信息性消息并退出。
Linux的安装后步骤
Docker守护进程绑定到Unix套接字而不是TCP端口。默认情况下,Unix套接字归用户root所有,其他用户只能使用sudo访问它。Docker守护进程始终作为根用户运行。
如果不想在docker命令前面加sudo,请创建一个名为docker的Unix组并向其中添加用户。当Docker守护进程启动时,它会创建一个Unix套接字
可由docker组成员访问。
创建docker组并添加用户:
创建docker组。
sudo groupadd docker
将您的用户添加到docker组
usermod -aG docker $USER
注销并重新登录,以便重新评估您的组成员资格。
如果在虚拟机上进行测试,则可能需要重新启动虚拟机以使更改生效。
在桌面Linux环境(如X Windows)中,完全注销会话,然后重新登录。
在Linux上,还可以运行以下命令来激活对组的更改:
newgrp docker
确认您可以在不使用sudo的情况下运行docker命令
docker run hello-world
如果在将用户添加到Docker组之前最初使用sudo运行Docker CLI命令,则可能会看到以下错误,这表明由于sudo命令的原因,~/.Docker/目录的创建权限不正确。
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
要解决此问题,请删除~/.docker/目录(该目录将自动重新创建,但任何自定义设置都将丢失),或者使用以下命令更改其所有权和权限:
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
将Docker配置为启动时启动
使用docker日志读取远程日志驱动程序的容器日志
配置默认日志驱动程序
Docker提供了通过一系列日志驱动程序从主机上运行的所有容器收集和查看日志数据的功能。默认的日志驱动程序json file将日志数据写入主机文件系统上json格式的文件。随着时间的推移,这些日志文件的大小会扩大,从而导致磁盘资源的潜在耗尽。为了缓解这些问题,可以配置另一个日志驱动程序,如Splunk或Syslog,或者为默认驱动程序设置日志循环。如果配置了备用日志驱动程序,请参阅使用docker log读取远程日志驱动程序的容器日志。
使用docker log读取远程日志驱动程序的容器日志
概述
在Docker Engine Enterprise 18.03之前,jsonfile和journald日志驱动程序支持使用docker logs读取容器日志。但是,许多第三方日志驱动程序不支持使用docker logs在本地读取日志,包括:
syslog
gelf
fluentd
awslogs
splunk
etwlogs
gcplogs
logentries
这在尝试以自动化和标准的方式收集日志数据时产生了多个问题。日志信息只能通过第三方解决方案以该第三方工具指定的格式访问和查看。
从Docker Engine Enterprise 18.03.1-ee-1开始,您可以使用docker logs读取容器日志,而不必考虑配置的日志驱动程序或插件。此功能有时称为双重日志记录,允许您使用docker logs 以一致的格式在本地读取容器日志,而不考虑使用的远程日志驱动程序,因为引擎配置将信息记录到“local”日志记录驱动程序。有关更多信息,请参阅配置默认日志驱动程序。
先决条件
Docker Enterprise只支持双重日志记录,默认情况下从Engine Enterprise 18.03.1-ee-1开始启用。
用法
默认情况下启用双重日志记录。必须使用远程日志驱动程序配置docker守护程序或容器。
下面的示例显示了运行docker logs命令的结果,其中包含和不包含双重日志记录可用性:
没有双重记录功能:
当容器或dockerd配置了远程日志驱动程序(如splunk)时,尝试在本地读取容器日志时显示错误:
Step 1: Configure Docker daemon
$ cat /etc/docker/daemon.json
{
"log-driver": "splunk",
"log-opts": {
...
}
}
Step 2: Start the container
docker run -d busybox --name testlog top
Step 3: Read the container logs
$ docker logs 7d6ac83a89a0
The docker logs command was not available for drivers other than json-file and journald.
具有双重记录功能:
要使用远程日志驱动程序(如splunk)配置容器或docker,请执行以下操作:
Step 1: Configure Docker daemon
$ cat /etc/docker/daemon.json
{
"log-driver": "splunk",
"log-opts": {
...
}
}
Step 2: Start the container
docker run -d busybox --name testlog top
Step 3: Read the container logs
$ docker logs 7d6ac83a89a0
2019-02-04T19:48:15.423Z [INFO] core: marked as sealed
2019-02-04T19:48:15.423Z [INFO] core: pre-seal teardown starting
2019-02-04T19:48:15.423Z [INFO] core: stopping cluster listeners
2019-02-04T19:48:15.423Z [INFO] core: shutting down forwarding rpc listeners
2019-02-04T19:48:15.423Z [INFO] core: forwarding rpc listeners stopped
2019-02-04T19:48:15.599Z [INFO] core: rpc listeners successfully shut down
2019-02-04T19:48:15.599Z [INFO] core: cluster listeners successfully shut down
限制:
不能指定多个日志驱动程序。
如果使用远程发送日志的日志驱动程序或插件的容器突然出现“网络”问题,则不会对本地缓存进行“写入”。
如果写入日志驱动程序因任何原因(文件系统已满,写入权限已删除)失败,则缓存写入将失败并记录在守护程序日志中。未重试缓存的日志项。
在默认配置中,某些日志可能会从缓存中丢失,因为使用环形缓冲区来防止在文件写入缓慢时阻塞容器的stdio。当守护进程关闭时,管理员必须修复这些问题。
使用systemd单元文件配置远程访问
使用命令sudo systemctl edit docker.service在文本编辑器中打开docker.service的覆盖文件。
添加或修改以下行,替换您自己的值。
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375
Reload the systemctl
configuration.
systemctl daemon-reload
Restart Docker.
systemctl restart docker.service
检查netstat的输出,确认dockerd正在监听配置的端口,以查看是否执行了更改。
netstat -lntp | grep dockerd
tcp 0 0 127.0.0.1:2375 0.0.0.0:* LISTEN 3758/dockerd
使用daemon.json配置远程访问
将/etc/docker/daemon.json中的hosts数组设置为连接到UNIX套接字和IP地址,如下所示:
{
"hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"]
}
Restart Docker.
检查netstat的输出,确认dockerd正在监听配置的端口,以查看是否执行了更改。
sudo netstat -lntp | grep dockerd
tcp 0 0 127.0.0.1:2375 0.0.0.0:* LISTEN 3758/dockerd
在Docker守护进程上启用IPv6
要在Docker守护进程上启用IPv6,请参阅启用IPv6支持。
为Docker指定DNS服务器
配置文件的默认位置是/etc/docker/daemon.json。您可以使用--config file 参数更改配置文件的位置。下面的文档假设配置文件位于/etc/docker/daemon.json
1、创建或编辑Docker守护进程配置文件,默认为/etc/Docker/daemon.json文件,该文件控制Docker守护进程配置。
nano /etc/docker/daemon.json
2、添加一个或多个IP地址作为值的dns密钥。如果文件包含现有内容,则只需添加或编辑dns行。
{
"dns": ["8.8.8.8", "8.8.4.4"]
}
如果您的内部DNS服务器无法解析公共IP地址,请至少包含一个可以解析的DNS服务器,以便您可以连接到Docker Hub,并且您的容器可以解析internet域名。
3、重新启动Docker守护进程
service docker restart
4、验证Docker是否可以通过尝试提取映像来解析外部IP地址:
docker pull hello-world
5、如有必要,请验证Docker容器是否可以通过ping来解析内部主机名。
docker run --rm -it alpine ping -c4 <my_internal_host> PING google.com (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: seq=0 ttl=41 time=7.597 ms
64 bytes from 192.168.1.2: seq=1 ttl=41 time=7.635 ms
64 bytes from 192.168.1.2: seq=2 ttl=41 time=7.660 ms
64 bytes from 192.168.1.2: seq=3 ttl=41 time=7.677 ms
要禁用RHEL、CentOS或Fedora上的dnsmasq:
1、禁用dnsmasq服务:
service dnsmasq stop
sudo systemctl disable dnsmasq
2、使用Red Hat文档手动配置DNS服务器。
####################
卸载Docker Engine
卸载Docker引擎、CLI和Containerd包:
yum remove docker-ce docker-ce-cli containerd.io
主机上的映像、容器、卷或自定义配置文件不会自动删除。要删除所有图像、容器和卷,请执行以下操作:
rm -rf /var/lib/docker
您必须手动删除任何已编辑的配置文件。
docker --version \\查看docker版本
快捷键
退出:Ctrl-D or exit
detach:Ctrl-P + Ctrl-Q
Namespace和Cgroup
1.Namespace — 实现进程、网络、消息、文件系统、主机名的隔离。
2.Cgroup — 实现对资源的配额和度量。
注:可以指定cpu个数,内存大小等
在 container 中启动一个长久运行的进程
JOB=$(docker run -d centos /bin/sh -c "while true;do echo hello world; sleep 1;done")
#-d 后台运行容器,并返回容器ID; -c 待完成
# echo $JOB
从一个容器中取日志:
docker logs 容器的Name/ID
# docker logs $JOB 查看日志:
hello world
docker search centos #搜索镜像:
docker pull centos #下载官方的 CentOS 镜像到本地
docker images #确认 CentOS 镜像已经被获取
docker load < c7moban.tar \\手动加载镜像。
创建容器
docker run -i -t --name centos7 -h linuxws -p 22:22 centos /bin/bash #创建一个 Docker 容器
-i 交互式操作 ;
-t 分配一个终端;
--name 容器的名字
-h 容器的主机名
-p:映射端口,前面80是虚拟机的端口
强制删除镜像
docker rm -f web01
docker 选项
-b, --bridge="" # 桥接网络,将容器附加到预先存在的网络桥上(Attach containers to a pre-existing network bridge)
-g, --graph="/var/lib/docker" # 容器运行的根目录路径
--ip-forward=true # 开启转发
--iptables=true # 添加对应 iptables 规则
docker images -q #显示短容器ID
docker 命令
cp # 从容器中拷贝指定文件或者目录到宿主机中
logs # 输出当前容器日志信息
port # 查看映射端口对应的容器内部源端口
restart # 重启运行的容器
rm # 移除一个或者多个容器
rmi # 移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除]
save # 保存一个镜像为一个 tar 包[对应 load]
build # 通过 Dockerfile 定制镜像
history #显示镜像制作的过程,相当于dockfile
load #与下面的save命令相对应,将下面sava命令打包的镜像通过load命令导入
images #列出本机的所有镜像
import #用tar文件新建一个镜像,与export命令相对应 docker import mysqldb.tar mysql:v1
logs #用于查看容器的日志
ps #列出所有容器,其中docker ps用于查看正在运行的容器,ps -a则用于查看所有容器。
pull #从docker hub中下载镜像
rename #更改容器的名字
restart #重启容器
search #从Docker Hub中搜索镜像
rmi #删除镜像
run #创建并启动容器
stats #动态显示容器的资源消耗情况,包括:CPU、内存、网络I/O
tag #对镜像进行重命名
top #查看容器中正在运行的进程
unpause #恢复容器内暂停的进程,与pause参数相对应
version #查看docker的版本
登录Docker Hub
[root@localhost ~]# docker login #login:,需到官网注册账号
Username: ivictor
Password:
上传本地镜像到Docker Hub
# docker push ivictor/centos:v1 #前提是登录docker hub
退出登录Docker Hub
[root@localhost ~]# docker logout #退出登录
Remove login credentials for https://index.docker.io/v1/
在宿主机和容器之间相互COPY文件
docker cp [OPTIONS] CONTAINER:PATH LOCALPATH
docker cp [OPTIONS] LOCALPATH CONTAINER:PATH
查看容器内发生改变的文件,以mysql容器为例
[root@localhost ~]# docker diff mysqldb
C /root
A /root/.bash_history
不难看出,C对应的均是目录,A对应的均是文件
实时输出Docker服务器端的事件,包括容器的创建,启动,关闭等。
[root@localhost ~]# docker events
2015-09-08T17:40:13.000000000+08:00 d2a2ef5ddb90b505acaf6b59ab43eecf7eddbd3e71f36572436c34dc0763db79: (from wordpress) create
2015-09-08T17:40:14.000000000+08:00 d2a2ef5ddb90b505acaf6b59ab43eecf7eddbd3e71f36572436c34dc0763db79: (from wordpress) die
2015-09-08T17:42:10.000000000+08:00 839866a338db6dd626fa8eabeef53a839e4d2e2eb16ebd89679aa722c4caa5f7: (from mysql) start
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
touche/centos6 latest 139b09783af3 13 months ago 577MB
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]#
查看docker的系统信息
# docker info
Containers: 3 --当前有3个容器
Images: 298
Storage Driver: devicemapper
Pool Name: docker-253:0-34402623-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 8.677 GB --对应的是下面Data loop file大小
Data Space Total: 107.4 GB
Data Space Available: 5.737 GB
Metadata Space Used: 13.4 MB --对应的是下面Metadata loop file大小
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.134 GB
在运行的容器中执行命令
docker exec -d cc touch 123 #后台型任务其中,cc是容器名
docker exec -i -t cc /bin/bash #交互型任务:
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN(标准输入)打开
-t :分配一个伪终端
将容器的文件系统打包成tar文件,有两种方式:
docker export -o mysqldb1.tar mysqldb
docker export mysqldb > mysqldb.tar
docker pause
pause --暂停容器内的所有进程,
此时,通过docker stats可以观察到此时的资源使用情况是固定不变的,
通过docker logs -f也观察不到日志的进一步输出。
输出容器端口与宿主机端口的映射情况
docker port blog
80/tcp -> 0.0.0.0:80 #容器blog的内部端口80映射到宿主机的80端口
启动、停止容器
docker start container #启动容器container
docker stop container #停止容器container
docker restart container #重启容器container
杀掉运行中的容器
docker kill -s KILL mynginx
-s #向容器发送一个信号
删除容器,无法删除运行中的容器,必须先用docker stop或docker kill使其停止。
docker rm -f `docker ps -a -q` #一次性删除所有容器:
-f #强制删除
-q #指的是只列出容器的ID
将镜像打包,与上面的load命令相对应
docker save -o nginx.tar nginx
暂停和继续容器
docker unpause CONTAINER # 继续暂停的容器
docker pause CONTAINER # 暂停一个容器,方便 commit
提交指定容器为镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] # 默认 commit 是暂停状态
-a, --author=""
-m, --message="" 提交信息
-p, --pause=true
Docker 端口映射
通过容器 id 获取 ip
sudo docker inspect <container_id> | grep IPAddress | cut -d ’"’ -f 4
容器的 ip 是本地系统分配的,其他主机访问不到该容器的端口。容器每次启动时ip都会改变。
自动映射端口
docker run -t -P --expose 22 --name server ubuntu:14.04
-P #随机端口映射,容器内部端口随机映射到主机的高端口
--expose #指定对外提供服务的端口
-i #以交互模式运行容器,通常与 -t 同时使用;
-t #为容器重新分配一个伪输入终端,通常与 -i 同时使用;
实例二:
docker run -P -d nginx:latest
#使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口
映射的端口将会从没有使用的端口池中 (49000..49900) 自动选择,
通过docker ps、
docker inspect <container_id>或者
docker port <container_id> <port>确定具体的绑定信息。
绑定端口到指定接口
--dns-search=DOMAIN 设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的 主机时,DNS 不仅搜索host,还会搜索 host.example.com 。 注意:如果没有上述最后 2 个选项, Docker 会默认用主机上的 /etc/resolv.conf 来配置容器。
--link=CONTAINER_NAME:ALIAS \\添加一个其他容器的主机名到 /etc/hosts 文件中。
-p 指定端口映射,格式为:宿主机端口:容器端口
使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
docker run -p 80:80 -v /data:/data -d nginx:latest 绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。
docker run -p 127.0.0.1:80:8080/tcp ubuntu bash 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
runoob@runoob:~$ docker run -it nginx:latest /bin/bash
root@b8573233d675:/# 绑定UDP端口
docker run -p 127.0.0.1:53:5353/udp
进入容器后:
yum grouplist
yum -y groupinstall "Minimal Install"
[root@cd05639b3f5c /]# exit #断开与容器的连接 exit
[root@localhost ~]# docker ps #显示正在运行容器
解决方法:
ntpdate cn.pool.ntp.org #同步一下时间
docker安装及概述的更多相关文章
- Centos +Docker 安装及仓库使用概述
1. Linux 系统学习Docker安装篇 这里我使用的Centos系统 安装Docker yum命令说明 即Yellowdog Update Modifier,是一种基于rpm的包管理工具 yu ...
- 理解Docker(1):Docker 安装和基础用法
本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- Docker构建YApi镜像, Docker安装YApi, Docker部署YApi
概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验,开发 ...
- Docker 安装和基础用法
理解Docker(1):Docker 安装和基础用法 本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 ...
- 使用docker安装myql/redis等软件
使用docker安装myql/redis等软件 概述 基本命令 安装mysql 安装redis 概述 在开发时经常需要安装各种软件,有时甚至为了验证一个命令不得不安装配置一个缓存.数据库.MQ等,耽误 ...
- 利用Docker安装Web前端性能测试工具Sitespeed.io
目录结构 一.Sitespeed.io概述 1.Sitespeed.io简介 2.Sitespeed.io使用场景 二.Sitespeed.io的安装和使用 1.安装Sitespeed.io 2.连接 ...
- docker 安装jenkins 发布 asp.net core 2.0
安装Docker 其实安装Docker的过程,大家可以到Docker官网找到自己相对应的安装文档进行安装,Docker区分CE和EE的两个版本,具体这两个版本有什么区别,大家自行查阅相关资料,这里不再 ...
- Docker安装Web前端性能测试工具Sitespeed.io
一.Sitespeed.io概述 1.Sitespeed.io简介 Sitespeed.io:是一款开源的Web性能测试工具,用来衡量Web网站的综合性能,帮助开发和测试人员分析网页的加载速度和渲染性 ...
- 【开发工具 docker】值得学习的应用容器引擎docker安装
概述: Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何 ...
随机推荐
- hihocoder #1052 : 基因工程(字符串处理 + 找规律 )
#1052 : 基因工程 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho正在进行一项基因工程实验.他们要修改一段长度为N的DNA序列,使得这段DNA上最前面 ...
- 【css学习整理】浮动,清除
css内边距属性: padding padding-top right bottom left 如果是两个数字,指的是上下,左右 padding: 10px 20px 上下10 左右20 如果是三 ...
- js动态插入标签代码(insertAdjacentHTML)
做网页时通过ajax请求获取到数据后,有的需要把数据拼接到带有各种标签的字符串中,拼接完字符串就需要把字符串动态添加到网页上的某个位置,举个
- linux中查找用户账户信息和登录信息的11中方法
摘自:开源中国 微信公众号 1. id 2. groups 3. finger 4.getent 5. grep 6. lslogins 7..users 8. who 9. w 10. last或者 ...
- python操作cad
from pyautocad import Autocad # 自動連接上cad,只要cad是開着的,就創建了一個<pyautocad.api.Autocad> 對象.這個對象連接最近打開 ...
- 分享知识-快乐自己:Oracle基本语法(创建:表空间、用户、授权、约束等)使用指南
Oracle12c 与 Oracle11g 创建用户时有差别.Oracle12C默认为 CDB模式 这时创建用户的时候需要加上 c## 开头:例如:c##MLQ. --说明--需求:创建表空间(MLQ ...
- 程序猿老公去米国参加 WWDC,顺便想带渡老婆蜜月,如何办签证?
这个问题要拆开描述比较好:1. 老公是苹果开发者,抽中了2014 WWDC购票机会,打算自费去参加.如果自己成行,应该办何种签证?2. 顺带,两人新婚半年还未安排蜜月,打算提前几天过去先游览一下西海岸 ...
- Luke 5—— 可视化 Lucene 索引查看工具,可以查看ES的索引
Luke 5 发布,可视化 Lucene 索引查看工具 oschina 发布于2015年08月31日 这是一个主要版本,该版本支持 Lucene 5.2.0. 它支持 elasticsearch ...
- homebrew cask安装launch rocket【转】
简介 brew cask是一个用命令行管理Mac下应用的工具,它是基于homebrew的一个增强工具. homebrew可以管理Mac下的命令行工具,例如imagemagick, nodejs,如下所 ...
- MySQL日期处理函数_20160922
除了对文本字符串进行处理外,对日期处理是最常用的了,年.月.周.日等等,同时在日常工作报表中月报.周报.日报这样的报表也是最常见了. #二.mysql对日期的处理 SELECT #具体某一天 DATE ...