目录
Docker 安装目录介绍
[root@VM-4-14-centos docker]# pwd
/var/lib/docker #默认安装的路径
[root@VM-4-14-centos docker]# ll
total 44
drwx--x--x 4 root root 4096 Apr 5 2022 buildkit
drwx--x--- 8 root root 4096 Jul 6 22:37 containers #容器相关信息(运行时容器内部的一些配置)
drwx------ 3 root root 4096 Apr 5 2022 image #镜像元数据相关信息
drwxr-x--- 3 root root 4096 Apr 5 2022 network #网络模式相关信息
drwx--x--- 47 root root 4096 Dec 2 17:40 overlay2 #容器Layer数据存储目录
drwx------ 4 root root 4096 Apr 5 2022 plugins #插件信息
drwx------ 2 root root 4096 Dec 2 17:40 runtimes
drwx------ 2 root root 4096 Apr 5 2022 swarm #集群相关信息
drwx------ 2 root root 4096 Dec 2 17:40 tmp #临时目录(在拉去镜像时候会产生临时文件)
drwx------ 2 root root 4096 Apr 5 2022 trust #验证相关信息
drwx-----x 3 root root 4096 Dec 2 17:40 volumes #数据卷相关信息(容器持久化的相关信息在其中)
Docker 容器日志问题注意
du -lh --max-depth=1p : 查看当前目录下一级子文件和子目录占用的磁盘容量。
Docker 资源获取方式
可从所需软件的官网查询,或doker hub网站查询所需资源
doker hub:https://hub-stage.docker.com/
一、Redis
1、拉取镜像到本地
//拉取最新版本
docker pull redis
//拉取指定版本
docker pull redis:5.0.14
2、查看是否拉取成功
docker images
3、创建容器
docker run -d
--name 【创建的容器名】
-p 【主机(宿主)端口】:【容器端口】
【本地镜像仓库下载的镜像名-REPOSITORY】:【需要的版本号-TAG】
docker run -d \
--name redis-5.0.14 \
-p 6379:6379 \
redis:5.0.14
参数说明
- -d :后台运行容器,并返回容器ID
- --name :为容器指定一个名称
- -p 6379:6379 :端口映射配置
4、内部连接容器客户端并设置密码
通过命令进入容器内部的操作客户端
docker exec -it 【redis容器名】 redis-cli
这条命令会使用 redis-cli 工具链接到名为 redis-5.0.14 的redis容器
docker exec -it redis-5.0.14 redis-cli
连接到redis后,使用以下命令设置密码为123456
config set requirepass 123456
二、Elasticsearch
1、安装Elasticsearch
1、拉取镜像到本地
docker pull elasticsearch:7.17.0
2、创建容器
(1)创建用户定义的网络(用于连接到同一网络的其他服务(例如 Kibana))
docker network create somenetwork
(2)创建容器
docker run -d
--name 【创建的容器名】
--net 【网络名】
-p 【主机(宿主)端口】:【容器端口】
【本地镜像仓库下载的镜像名-REPOSITORY】:【需要的版本号-TAG】
docker run -d \
--name elasticsearch-7.17.0 \
-p 9200:9200 -p 9300:9300 \
--net somenetwork \
-e "discovery.type=single-node" \
elasticsearch:7.17.0
参数说明
- -d :后台运行容器,并返回容器ID
- --name :为容器指定一个名称
- -p 9200:9200 -p 9300:9300 :端口映射配置
- --net somenetwork :加入一个名为 somenetwork 的网络中,同一个网络中可以相互访问
- -e "discovery.type=single-node":单点模式启动
es十分耗内存:通过docker stats 查看发现资源消耗很大
我们可以通过增加内存限制来控制【学习推荐使用这个】
docker run -d \
--name elasticsearch-7.17.0 \
-p 9200:9200 -p 9300:9300 \
--net somenetwork \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
elasticsearch:7.17.0
-e 环境配置修改(设置启动占用的内存范围)
-e ES_JAVA_OPTS="-Xms64m -Xmx512m"
3、测试
访访问地址:localhost:9200
出现如下信息说明elasticsearch已经安装好了,并且能够正常使用了。
2、安装kibana(官方推荐的可视化插件)
1、拉取镜像到本地
docker pull kibana:7.17.0
2、创建容器
docker run -d
--name 【创建的容器名】
--net 【网络名】
-p 【主机(宿主)端口】:【容器端口】
【本地镜像仓库下载的镜像名-REPOSITORY】:【需要的版本号-TAG】
docker run -d \
--name kibana-7.17.0 \
-p 5601:5601 \
--net somenetwork \
-e ELASTICSEARCH_HOSTS=http://xxx.xxx.xxx.xxx:9200 \
kibana:7.17.0
参数说明
- -d :后台运行容器,并返回容器ID
- --name :为容器指定一个名称
- -p 5601:5601:端口映射配置
- --net somenetwork:加入一个名为 somenetwork 的网络中,与 elasticsearch 在同一个网络中
- -e ELASTICSEARCH_HOSTS=http://es:9200:配置环境变量:设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
3、测试
访问地址:localhost:5601
出现如下信息说明kibana已经安装好了,并且能够正常使用了。
三、SkyWalking
1、拉取镜像到本地
(1)下载oap
docker pull apache/skywalking-oap-server:8.7.0-es7
(2)下载UI页面
docker pull apache/skywalking-ui:8.7.0
2、创建容器
(1)创建oap容器,并连接es
docker run -d
--name 【创建的容器名】
-p 【主机(宿主)端口】:【容器端口】
--net 【网络名】
--link 【<name or id>】:【alias】
- 用来链接2个容器
- 格式:--link <name or id>:alias
- 其中,name和id是源容器的name和id,alias是源容器在link下的别名。
-e 【环境变量名】=【环境变量值】
【本地镜像仓库下载的镜像名-REPOSITORY】:【需要的版本号-TAG】
docker run -d \
--name skywalking-oap-server-8.7.0-es7 \
-p 11800:11800 -p 12800:12800 \
--net somenetwork \
--link elasticsearch-7.17.0:es7 \
-e "TZ=Asia/Shanghai" \
-e SW_STORAGE=elasticsearch7 \
-e SW_STORAGE_ES_CLUSTER_NODES=es7:9200 \
apache/skywalking-oap-server:8.7.0-es7
参数说明
- -d :后台运行容器,并返回容器ID
- --name :为容器指定一个名称
- -p 11800:11800 -p 12800:12800:端口映射配置
- --net somenetwork:加入一个名为 somenetwork 的网络中,与 elasticsearch 在同一个网络中
- -e :配置环境变量
(2)创建UI容器
(1、使用ip地址链接oap容器【可用】
docker run -d \
--name skywalking-ui-8.7.0 \
-p 8110:8080 \
--net somenetwork \
-e SW_OAP_ADDRESS=http://xxx.xxx.xxx.xxx:12800 \
apache/skywalking-ui:8.7.0
(2、 使用容器名链接oap【始终链接不上尚未找到原因】
docker run -d \
--name skywalking-ui-8.7.0 \
-p 8110:8080 \
--net somenetwork \
--link skywalking-oap-server-8.7.0-es7:oap-server \
-e SW_OAP_ADDRESS=skywalking-oap-server-8.7.0-es7:12800 \
apache/skywalking-ui:8.7.0
说明:
– link:注意容器的名称
-e SW_OAP_ADDRESS:oap容器名称,也可改为ip:12800,即其他服务的IP和端口
docker run -d --name skywalking-ui-8.7.0 -p 8110:8080 \
--link skywalking-oap-server-8.7.0-es7:skywalking-oap-server-8.7.0-es7 \
-e SW_OAP_ADDRESS=skywalking-oap-server-8.7.0-es7:12800 \
--restart always apache/skywalking-ui:8.7.0
3、测试
UI访问地址:localhost:8110