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:防火墙问题


版权声明:本文为qq_41884396原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。