docker安装与使用
一、docker安装
sudo wget -qO- https://get.docker.com/ | bash
二、容器
容器是由镜像实例化而来,这和我们学习的面向对象的概念十分相似,我们可以把镜像看作类,把容器看作类实例化后的对象。
也可以说镜像是文件, 容器是进程。 容器是基于镜像创建的, 即容器中的进程依赖于镜像中的文件, 这里的文件包括进程运行所需要的可执行文件, 依赖软件, 库文件, 配置文件等等…
以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:
docker run -itd ubuntu /bin/bash
- -i: 交互式操作。
- -t: 终端。
- -d:后台运行。
- ubuntu: ubuntu 镜像。
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
查看所有容器,包括停止的
docker ps -a
查看当前运行的容器
docker ps
启动一个已停止的容器
docker start [NAME]/[CONTAINER ID]
将容器退出
docker stop [NAME]/[CONTAINER ID]
停止容器的命令如下:
docker stop <容器 ID>
重启停止的容器 :
docker restart <容器 ID>
强制停止一个容器
docker kill [NAME]/[CONTAINER ID]
删除容器,不能够删除一个正在运行的容器,会报错。需要先停止容器。
docker rm [NAME]/[CONTAINER ID]
将已经建立的容器修改为开机启动
docker update --restart=always [NAME]/[CONTAINER ID]
进入容器
docker exec -it [NAME]/[CONTAINER ID] /bin/bash
退出容器:exit
导出容器
如果要导出本地某个容器,可以使用 docker export 命令。
$ docker export [CONTAINER ID] > ubuntu.tar
导入容器快照
可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:
$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1
三、镜像
3.1 列出镜像列表
docker images
五、Docker 部署ES
5.1 部署ES
1 拉取镜像
docker pull elasticsearch:6.5.4
2 运行容器
ElasticSearch
的默认端口是9200,我们把宿主环境9200端口映射到Docker
容器中的9200端口,就可以访问到Docker
容器中的ElasticSearch
服务了,同时我们把这个容器命名为es
。
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.5.4
5.2 配置跨域
docker exec -it es /bin/bash
进行配置
# 显示文件
ls
结果如下:
LICENSE.txt README.textile config lib modules
NOTICE.txt bin data logs plugins
# 进入配置文件夹
cd config
# 显示文件
ls
结果如下:
elasticsearch.keystore ingest-geoip log4j2.properties roles.yml users_roles
elasticsearch.yml jvm.options role_mapping.yml users
# 修改配置文件
vi elasticsearch.yml
# 加入跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
5.3 重启容器
由于修改了配置,因此需要重启ElasticSearch
容器。
docker restart es
5.4 Docker 部署 ES-IK分词器
下载ik分词器:https://github.com/medcl/elasticsearch-analysis-ik/releases ,版本一定要与 elasticsearch 一致。
1 进入es容器内:
docker exec -it es /bin/bash
2 在plugins目录下创建ik文件夹:
mkdir /usr/share/elasticsearch/plugins/ik
3 退出容器:exit
4 拷贝下载好的ik分词器压缩包到ik文件夹中:
docker cp /orcas/software/elasticsearch-analysis-ik-6.5.4.zip es:/usr/share/elasticsearch/plugins/ik/
5 重新进入容器
进入ik目录
解压
重启容器:
docker restart es
5.5 Docker 部署 ElasticSearch-Head
为什么要安装ElasticSearch-Head
呢,原因是需要有一个管理界面进行查看ElasticSearch
相关信息
1 拉取镜像
docker pull mobz/elasticsearch-head
2 运行容器
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head
5.6 Docker快速安装kibana
1 拉取镜像
docker pull kibana:6.5.4
2 运行容器
docker run -d --name kibana -e ELASTICSEARCH_URL=http://127.0.0.1:9200 -p 5601:5601 kibana:6.5.4
注意:kibana 报错 server is not ready yet 可能的原因
问题1:KB、ES版本不一致
解决方法:把KB和ES版本调整为统一版本
问题2:kibana.yml中配置有问题
然后进入 Kibana 容器内部,修改 kibana.yml 中的ip
$ docker exec -it kibana容器id /bin/bash
$ cd config
$ vi kibana.yml
#
# ** THIS IS AN AUTO-GENERATED FILE **
#
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
只需要将上面的 "http://elasticsearch:9200"
中的 elasticsearch
替换成上一步的es容器内部ip就可以了。
修改完成之后退出容器,重新启动即可 docker restart kibana容器id
问题3:防火墙问题