docker 安装镜像及使用命令

目录

  • 1. Mysql
  • 2. Redis
  • 3. Nginx
  • 4. Elasticsearch
    • 官网指导

docker pull 容器名:版本号 拉取容器, 不指定版本号默认最新的
run 运行
-d 后台运行
-p 3306:3306 -p是port 对外端口:对内端口
–name xyy_mysql 容器名称
-e MYSQL_ROOT_PASSWORD=123456 环境变量
-v 系统地址:docker地址 docker 地址映射系统地址

docker exec -it 容器名称 bash 可以进入该容器,进行操作

最后指定启动那个镜像:版本

1. Mysql

# 拉去mysql
docker pull mysql:version
# 启动mysql
docker run -p 3306:3306 --name xyy_mysql -e MYSQL_ROOT_PASSWORD=123456 -v D:/docker/mysql/data:/var/lib/mysql -d mysql:版本 --character-set-server=utf8mb4

后续不需要重复这么启动, 只需要以下方式即可启动, 其他同理

docker start xyy_mysql

2. Redis

docker pull redis:version
  1. 创建网络 里面有个IPAM.Config.Gateway 的值记下来, 是网络ip
    # 删除网络信息
    docker network rm redis_network
    # 重新创建子网指定subnet, 172.21这个很重要
    docker network create --subnet 172.21.0.0/16 redis_network
    # 查看网络信息 `IPAM.Config.Subnet`的值
    docker network inspect redis_network
  2. 创建本地磁盘和容器映射
    vim conf\node-1\redis.conf
    vim conf\node-2\redis.conf
    vim conf\node-3\redis.conf`vim redis.conf`
    # 分别写入以下配置
    port 6379 #端口
    bind 0.0.0.0 #开其他设备访问权限
    cluster-enabled yes #集群支持
    cluster-config-file nodes.conf # 节点配置文件
    cluster-node-timeout 5000 # 节点超时
    cluster-announce-ip 172.21.0.11 ##node2 node3 分别+1
    cluster-announce-port 6379
    cluster-announce-bus-port 16379
    appendonly yes #持久化
    requirepass 123456 # 密码
    
  3. 启动redis
    docker run -p 6371:6379 -p 16371:16379 --name redis-1 -v D:\docker\redis\data\node-1:/data -v D:\docker\redis\conf\node-1\redis.conf:/etc/redis/redis.conf --net redis_network --ip 172.21.0.11 -d redis redis-server /etc/redis/redis.conf
    docker run -p 6372:6379 -p 16372:16379 --name redis-2 -v D:\docker\redis\data\node-2:/data -v D:\docker\redis\conf\node-2\redis.conf:/etc/redis/redis.conf --net redis_network --ip 172.21.0.12 -d redis redis-server /etc/redis/redis.conf
    docker run -p 6373:6379 -p 16373:16379 --name redis-3 -v D:\docker\redis\data\node-3:/data -v D:\docker\redis\conf\node-3\redis.conf:/etc/redis/redis.conf --net redis_network --ip 172.21.0.13 -d redis redis-server /etc/redis/redis.conf
    
  4. 集群配置
    –cluster-replicas 1 表示每台主节点至少需要一个从节点
    	# 进入redis-1 控制台docker exec -it redis-1 bash# 集群配置redis-cli –cluster [-replicas 1] create 172.21.0.11:6379 172.21.0.12:6379 172.21.0.13:6379
    
  5. 检查集群信息
    # 登录
    redis-cli -c 
    # 认证密码
    auth "123456"
    # 集群信息
    cluster info
    # 节点信息
    cluster nodes
    

3. Nginx

  1. 拉取nginx

    docker pull nginx:version
    
  2. 启动 nginx 并查看容器id

    docker run -p 9998:80 --name nginx -d nginx:版本
    docker ps # 查看容器id
    
  3. 将nginx中的conf文件复制出来

    docker下nginx的目录就是这里

    	docker cp 容器ID:/etc/nginx/nginx.conf /server/nginx/conf
    
  4. 创建几个文件夹

    mkdir -p /server/nginx/logs #日志
    mkdir -p /server/nginx/conf #配置
    
  5. 停止之前的镜像并删除

    docker stop nginx
    docker rm nginx
    
  6. 重新启动nginx镜像配置

    docker run -d -p 9999:80 --name nginx -v /server/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /server/nginx/logs:/var/log/nginx --privileged=true nginx:1.17.8
    

4. Elasticsearch

  1. 拉取es

    docker pull docker.elastic.co/elasticsearch/elasticsearch:8.13.3
    
  2. 创建网络

    docker network create es_network
    
  3. 创建映射文件夹

    mkdir -p D:/docker/es/conf
    mkdir -p D:/docker/es/data
    mkdir -p D:/docker/es/plugins
    echo "http.host : 0.0.0.0" >> D:/docker/es/conf/elasticsearch.yml
    
  4. 启动
    discovery.type=single-node 单节点启动

    docker run --name es -p 9200:9200 -p 9300:9300 \
    -e "discovery.type=single-node"\
    -e ES_JAVA_OPTS="-Xms64m -Xmx128m"
    -v D:/docker/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml\
    -v D:/docker/es/data:/usr/share/elasticsearch/data\
    -v D:/docker/es/plugins:/usr/share/elasticsearch/plugins\
    -d elasticsearch:8.13.3
    
    docker run --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -v D:/docker/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v D:/docker/es/data:/usr/share/elasticsearch/data -v D:/docker/es/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:8.13.3
    
  5. 下载ik分词器
    下载地址: https://github.com/infinilabs/analysis-ik/releases/tag/v8.13.3
    将对应下载好的zip安装包解压到 D:/docker/es/plugins 因为之前做了映射. (ps: 不要将压缩包放到目录下, 这个目录只放插件)

  6. 将ik分词器作为默认分词器
    ES的默认分词是standard, 会在分割中文时将每个汉字都拆分开,
    IK分词器有两种设置, 一种是 ik_smart 最少分片, 会将 “清华大学” 分为 “清华大学” , 另一种是 ik_max_word 最细分片 会将"清华大学" 分为 “清华”,“大学”

    PUT /school_index
    {"setting":{"index":{"analysis.analyzer.default.type":"ik_max_word"}	}
    }
    

官网指导

官方指导链接: https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

集群模式下其中两个文件进行了修改:

  1. .env 文件
    # es 密码, 6位数起
    ELASTIC_PASSWORD=123456# kabana 密码, 6位数起
    KIBANA_PASSWORD=123456# es安装版本
    STACK_VERSION=8.13.3# 集群名称
    CLUSTER_NAME=docker-es-cluster# 简单模式或者试用模式(30)
    LICENSE=basic
    #LICENSE=trial# 映射ip, 如果指定端口则只有指定机器可以访问
    ES_PORT=9200
    #ES_PORT=127.0.0.1:9200# kabana端口
    KIBANA_PORT=5601
    #KIBANA_PORT=80# 内存大小(in bytes)
    MEM_LIMIT=1073741824# 名称前缀
    #COMPOSE_PROJECT_NAME=es
    
  2. docker-compose.yml 文件
    version: "2.2"services:setup:image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}volumes:- D:/docker/es/config/certs:/usr/share/elasticsearch/config/certsuser: "0"command: >bash -c 'if [ x${ELASTIC_PASSWORD} == x ]; thenecho "Set the ELASTIC_PASSWORD environment variable in the .env file";exit 1;elif [ x${KIBANA_PASSWORD} == x ]; thenecho "Set the KIBANA_PASSWORD environment variable in the .env file";exit 1;fi;if [ ! -f config/certs/ca.zip ]; thenecho "Creating CA";bin/elasticsearch-certutil ca --silent --pem -out config/certs/ca.zip;unzip config/certs/ca.zip -d config/certs;fi;if [ ! -f config/certs/certs.zip ]; thenecho "Creating certs";echo -ne \"instances:\n"\"  - name: es01\n"\"    dns:\n"\"      - es01\n"\"      - localhost\n"\"    ip:\n"\"      - 127.0.0.1\n"\"  - name: es02\n"\"    dns:\n"\"      - es02\n"\"      - localhost\n"\"    ip:\n"\"      - 127.0.0.1\n"\"  - name: es03\n"\"    dns:\n"\"      - es03\n"\"      - localhost\n"\"    ip:\n"\"      - 127.0.0.1\n"\> config/certs/instances.yml;bin/elasticsearch-certutil cert --silent --pem -out config/certs/certs.zip --in config/certs/instances.yml --ca-cert config/certs/ca/ca.crt --ca-key config/certs/ca/ca.key;unzip config/certs/certs.zip -d config/certs;fi;echo "Setting file permissions"chown -R root:root config/certs;find . -type d -exec chmod 750 \{\} \;;find . -type f -exec chmod 640 \{\} \;;echo "Waiting for Elasticsearch availability";until curl -s --cacert config/certs/ca/ca.crt https://es01:9200 | grep -q "missing authentication credentials"; do sleep 30; done;echo "Setting kibana_system password";until curl -s -X POST --cacert config/certs/ca/ca.crt -u "elastic:${ELASTIC_PASSWORD}" -H "Content-Type: application/json" https://es01:9200/_security/user/kibana_system/_password -d "{\"password\":\"${KIBANA_PASSWORD}\"}" | grep -q "^{}"; do sleep 10; done;echo "All done!";'healthcheck:test: ["CMD-SHELL", "[ -f config/certs/es01/es01.crt ]"]interval: 1stimeout: 5sretries: 120es01:depends_on:setup:condition: service_healthyimage: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}volumes:- D:/docker/es/config/certs:/usr/share/elasticsearch/config/certs- D:/docker/es/data/note01:/usr/share/elasticsearch/dataports:- ${ES_PORT}:9200environment:- node.name=es01- cluster.name=${CLUSTER_NAME}- cluster.initial_master_nodes=es01,es02,es03- discovery.seed_hosts=es02,es03- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}- bootstrap.memory_lock=true- xpack.security.enabled=true- xpack.security.http.ssl.enabled=true- xpack.security.http.ssl.key=certs/es01/es01.key- xpack.security.http.ssl.certificate=certs/es01/es01.crt- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt- xpack.security.transport.ssl.enabled=true- xpack.security.transport.ssl.key=certs/es01/es01.key- xpack.security.transport.ssl.certificate=certs/es01/es01.crt- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt- xpack.security.transport.ssl.verification_mode=certificate- xpack.license.self_generated.type=${LICENSE}mem_limit: ${MEM_LIMIT}ulimits:memlock:soft: -1hard: -1healthcheck:test:["CMD-SHELL","curl -s --cacert config/certs/ca/ca.crt https://localhost:9200 | grep -q 'missing authentication credentials'",]interval: 10stimeout: 10sretries: 120es02:depends_on:- es01image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}volumes:- D:/docker/es/config/certs:/usr/share/elasticsearch/config/certs- D:/docker/es/data/note02:/usr/share/elasticsearch/dataenvironment:- node.name=es02- cluster.name=${CLUSTER_NAME}- cluster.initial_master_nodes=es01,es02,es03- discovery.seed_hosts=es01,es03- bootstrap.memory_lock=true- xpack.security.enabled=true- xpack.security.http.ssl.enabled=true- xpack.security.http.ssl.key=certs/es02/es02.key- xpack.security.http.ssl.certificate=certs/es02/es02.crt- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt- xpack.security.transport.ssl.enabled=true- xpack.security.transport.ssl.key=certs/es02/es02.key- xpack.security.transport.ssl.certificate=certs/es02/es02.crt- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt- xpack.security.transport.ssl.verification_mode=certificate- xpack.license.self_generated.type=${LICENSE}mem_limit: ${MEM_LIMIT}ulimits:memlock:soft: -1hard: -1healthcheck:test:["CMD-SHELL","curl -s --cacert config/certs/ca/ca.crt https://localhost:9200 | grep -q 'missing authentication credentials'",]interval: 10stimeout: 10sretries: 120es03:depends_on:- es02image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}volumes:- D:/docker/es/config/certs:/usr/share/elasticsearch/config/certs- D:/docker/es/data/note03:/usr/share/elasticsearch/dataenvironment:- node.name=es03- cluster.name=${CLUSTER_NAME}- cluster.initial_master_nodes=es01,es02,es03- discovery.seed_hosts=es01,es02- bootstrap.memory_lock=true- xpack.security.enabled=true- xpack.security.http.ssl.enabled=true- xpack.security.http.ssl.key=certs/es03/es03.key- xpack.security.http.ssl.certificate=certs/es03/es03.crt- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt- xpack.security.transport.ssl.enabled=true- xpack.security.transport.ssl.key=certs/es03/es03.key- xpack.security.transport.ssl.certificate=certs/es03/es03.crt- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt- xpack.security.transport.ssl.verification_mode=certificate- xpack.license.self_generated.type=${LICENSE}mem_limit: ${MEM_LIMIT}ulimits:memlock:soft: -1hard: -1healthcheck:test:["CMD-SHELL","curl -s --cacert config/certs/ca/ca.crt https://localhost:9200 | grep -q 'missing authentication credentials'",]interval: 10stimeout: 10sretries: 120kibana:depends_on:es01:condition: service_healthyes02:condition: service_healthyes03:condition: service_healthyimage: docker.elastic.co/kibana/kibana:${STACK_VERSION}volumes:- D:/docker/es/config/certs:/usr/share/kibana/config/certs- D:/docker/es/data/kabana:/usr/share/kibana/dataports:- ${KIBANA_PORT}:5601environment:- SERVERNAME=kibana- ELASTICSEARCH_HOSTS=https://es01:9200- ELASTICSEARCH_USERNAME=kibana_system- ELASTICSEARCH_PASSWORD=${KIBANA_PASSWORD}- ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES=config/certs/ca/ca.crtmem_limit: ${MEM_LIMIT}healthcheck:test:["CMD-SHELL","curl -s -I http://localhost:5601 | grep -q 'HTTP/1.1 302 Found'",]interval: 10stimeout: 10sretries: 120volumes:certs:driver: localesdata01:driver: localesdata02:driver: localesdata03:driver: localkibanadata:driver: local

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/834117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js强大的运算符:??、??=

学习目标: js中强大的运算符 ?? 非空运算符 学习内容: ?? 非空运算符 注意:?? 运算符被称为非空运算符。如果第一个参数不是 null/undefined 将返回第一个参数,否则返回第二个参数 之前: 给变量设置默认值时…

正点原子Linux学习笔记(七)在 LCD 上显示 png 图片

在 LCD 上显示 png 图片 21.1 PNG 简介21.2 libpng 简介21.3 zlib 移植下载源码包编译源码安装目录下的文件夹介绍移植到开发板 21.4 libpng 移植下载源码包编译源码安装目录下的文件夹介绍移植到开发板 21.5 libpng 使用说明libpng 的数据结构创建和初始化 png_struct 对象创建…

cookie、session、token

cookie 纳入标准文档,标准浏览器需要遵守的协议之一,作为标准浏览器必须支持的。 WEB应用都是基于HTTP协议,标准的HTTP协议是无状态的。 什么是无状态? 不管是谁,不管是从哪个地方发起的请求。只要你的请求&#xff08…

openssl 生成证书步骤

本地测试RSA非对称加密功能时,需要用到签名证书。本文记录作者使用openssl本地生成证书的步骤,并没有深入研究openssl,难免会有错误,欢迎指出!!! 生成证书标准流程: 1、生成私钥&am…

【Linux】Linux——Centos7安装RabbitMQ

目录 安装包准备socaterlang 安装rabbitmq安装命令启动rabbitmq,两种方式查看rabbitmq 启动后的情况配置并开启网页插件关闭防火墙或开放端口测试登录问题配置web端访问账号密码和权限添加用户,后面两个参数分别是用户名和密码.添加权限修改用户角色再次…

单片机的中断

1. 中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置 当中央处理机CPU正在处理某件事的时候外界发生紧急事件请求,要CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来中断的地方,继续原…

C语言22行代码,让你的朋友以为中了病毒

1 **C语言介绍 ** C语言是一种计算机编程语言,由丹尼斯里奇(Dennis Ritchie)在1972年左右为UNIX操作系统设计并开发。它具有高效、可移植、灵活和强大的特点,在计算机科学领域中具有广泛的应用。C语言是一种结构化语言&#xff0…

电子硬件设计-Xilinx FPGA/SoC前期功耗评估方法(1)

目录 1. 简介 2. 使用方法 2.1 设计输入 2.2 查看结果 3. 额外说明 4. 总结 1. 简介 XPE (Xilinx Power Estimator, 功耗估算器) 电子表格是一种功耗估算工具,用于项目的预设计和预实现阶段。 该工具可以帮助工程师进行架构评估、器件选择、合适的电源组件以…

官方文档k8s1.30安装部署高可用集群,kubeadm安装Kubernetes1.30最新版本

文章目录 节点架构一、准备开始(每一台机器都执行)1️⃣ 检查所需端口(可以直接关闭防火墙放开所有端口)端口和协议控制面工作节点 关闭防火墙关闭 SELinux 2️⃣ 安装containerd容器containerd部署containerd切换为国内源 3️⃣ 设置/etc/hosts 二、安装 kubeadm、kubelet 和 …

安卓开发--环境配置

本次项目选择使用 Andrio Studio 进行开发。虽然这款软件版本更新也很快。不过开发一款APP的技术流程是大差不差的。我几年前的安卓笔记放到现在还是能用。 现在CSDN网上写一个笔记留作以后参考,开始吧!!! 1 安装 Andrio Studio …

npm 安装 pnpm 时 报错 npm ERR! Unexpected token ‘.‘

问题 一个项目用的是 pnpm 安装的依赖,node 的版本是 16.16.0,nvm 的版本是 1.1.7,然后全局安装 pnpm 报错如下: 解决 我看网上的一些解决方案是说 nvm 版本过低导致,下面我们按照这个方向处理。 实首先下载 nvm-up…

详细讲一下PYG 里面的torch_geometric.nn.conv.transformer_conv函数

1.首先先讲一下代码 这是官方给的代码:torch_geometric.nn.conv.transformer_conv — pytorch_geometric documentation import math import typing from typing import Optional, Tuple, Unionimport torch import torch.nn.functional as F from torch import T…

使用凌鲨建立软件研发技能学习小组

凌鲨(OpenLinkSaas)的团队功能除了提供论坛功能,还能记录团队成员的成长记录。 使用方法 打开团队功能 团队功能在默认情况下是关闭的,你可以在登录后打开团队功能开关。 创建学习团队 日报/周报/个人目标一般是企业团队需要,建议关闭。 …

Shell生成支持x264的ffmpeg安卓全平台so

安卓 FFmpeg系列 第一章 Ubuntu生成ffmpeg安卓全平台so 第二章 Windows生成ffmpeg安卓全平台so 第三章 生成支持x264的ffmpeg安卓全平台so(本章) 文章目录 安卓 FFmpeg系列前言一、实现步骤1、下载x264源码2、交叉编译生成.a3、加入x264配置4、编译ffmp…

Redis 哨兵机制

文章目录 哨兵机制概念相关知识铺垫主从复制缺陷哨兵工作流程选举具体流程理解注意事项 哨兵机制概念 先抽象的理解,哨兵就像是监工,节点不干活了,就要有行动了。 Redis 的主从复制模式下,⼀旦主节点由于故障不能提供服务&#…

MVC WebAPI

创建项目 创建api控制器 》》》 web api 控制器要继承 ApiController 》》》 数据会自动装配 及自动绑定 》》》清除xml返回格式 //清除XML返回格式 GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear(); 》》》跨越问题

全面解析Spring Gateway过滤器

Spring Gateway过滤器的作用 在微服务架构中,Spring Gateway扮演着重要的角色,它的过滤器功能尤其值得我们深入探讨。试想一下,当一个请求来到我们的系统时,我们如何能够确保它被正确、高效地路由到对应的服务?又如何…

【汇编语言小练习输入两个数字然后输出它们的和】

这个程序是用汇编语言编写一个简单的程序,它将从键盘输入两个数字,然后输出它们的和。 .MODEL SMALL .STACK 100H.DATAINPUT_MSG1 DB Enter the first number: $INPUT_MSG2 DB 13, 10, Enter the second number: $RESULT_MSG DB 13, 10, The sum is: $N…

2024服贸会,参展企业媒体宣传报道攻略

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 2024年中国国际服务贸易交易会(简称“服贸会”)是一个重要的国际贸易平台,对于参展企业来说,有效的媒体宣传报道对于提升品牌知名度、扩大…

关于 curl: (52) Empty reply from server 问题的总结

最近在改造底层框架时遇到了Empty reply from server的问题,这个提示让我很懵圈,server居然还能返回空响应。 出现这个提示的时候,我们要清楚什么: 1、我们需要在curl后加个 -v 参数来看他具体表现,它以告诉你具体的信…