【收藏级】Docker怎么用全套配置模板与脚本
Docker 就像是一个神奇的“集装箱”,它能把你的程序代码以及运行所需的所有环境(如系统库、配置文件等)全部打包在一起。这样,无论这个“集装箱”被搬到哪台电脑上,程序都能以完全相同的方式运行,彻底告别了“在我的电脑上明明能跑”的尴尬。
对于初学者来说,掌握 Docker 只需要记住以下几个核心步骤和概念:
一、 Docker 的核心工作流
使用 Docker 通常遵循以下四个步骤:
拉取镜像(Pull):从远程仓库下载别人做好的“集装箱”(镜像)。
运行容器(Run):启动镜像,生成一个正在运行的“集装箱实例”(容器)。
进入容器(Exec):如果需要调试,可以进入正在运行的容器内部查看。
停止与清理(Stop/Rm):使用完毕后,停止并删除容器以释放资源。
二、 常用基础命令速查
以下是日常使用中最核心的命令:
拉取镜像:docker pull 镜像名称:标签(例如 docker pull nginx:latest)
运行容器:docker run -d -p 宿主机端口:容器端口 --name 容器名 镜像名称
-d:后台运行
-p:端口映射(将容器内的端口暴露给宿主机)
--name:给容器起个名字
查看运行中的容器:docker ps
进入容器内部:docker exec -it 容器名 /bin/bash
停止/启动/删除容器:docker stop 容器名 / docker start 容器名 / docker rm 容器名
三、 实战演练:用 Docker 部署 Elasticsearch
结合你之前关注的 Elasticsearch,我们可以用 Docker 在几分钟内搭建一个本地学习环境,完全不需要在本地安装复杂的 Java 环境。
1. 创建专属网络并拉取镜像
首先创建一个 Docker 网络,方便后续组件通信,然后拉取 ES 官方镜像(这里以 8.12.2 版本为例):
bash
编辑
1docker network create elastic
2docker pull docker.elastic.co/elasticsearch/elasticsearch:8.12.2
2. 一键启动 ES 容器
使用以下命令启动一个单节点的 ES 实例。这里我们设置了初始内存为 1GB,并禁用了安全认证(方便本地学习):
bash
编辑
1docker run --name es01 --net elastic -p 9200:9200 -it -m 1GB -e "discovery.type=single-node" -e "xpack.security.enabled=false" docker.elastic.co/elasticsearch/elasticsearch:8.12.2
3. 验证是否成功
打开浏览器访问 http://localhost:9200,或者在终端执行:
bash
编辑
1curl -X GET "localhost:9200/?pretty"
如果返回了包含 "cluster_name" 和 "version" 的 JSON 数据,说明你的 ES 已经成功跑在 Docker 里了!
四、 进阶:使用 Docker Compose 编排多容器
当你需要同时运行 ES 和 Kibana(ES 的可视化面板)时,手动敲命令会很繁琐。这时可以使用 docker-compose.yml 文件进行一键编排。
创建一个 docker-compose.yml 文件,写入以下内容:
yaml
编辑
1version: '3.8'
2services:
3 es01:
4 container_name: es01
5 image: docker.elastic.co/elasticsearch/elasticsearch:8.12.2
6 environment:
7 - discovery.type=single-node
8 - xpack.security.enabled=false
9 - ES_JAVA_OPTS=-Xms1g -Xmx1g
10 ports:
11 - "9200:9200"
12 networks:
13 - elastic
14
15 kibana:
16 container_name: kibana
17 image: docker.elastic.co/kibana/kibana:8.12.2
18 environment:
19 - ELASTICSEARCH_HOSTS=http://es01:9200
20 ports:
21 - "5601:5601"
22 networks:
23 - elastic
24 depends_on:
25 - es01
26
27networks:
28 elastic:
29 driver: bridge
然后在当前目录下运行 docker-compose up -d,Docker 就会自动帮你把 ES 和 Kibana 都启动好,并且让它们在网络内部互相连通。
-
为什么推荐Traefik?深度对比与实测Traefik(发音为 traffic)是一款专为微服务架构和云原生环境设计的现代化开源 HTTP 反向代理和负载均衡器。与传统的反向代理(如 Nginx)不同,Traefik 的核心优势在于自动化服务发现与动态配置,它能实时监听基础设施的变化并自动更新路由规则,全程无需重启服务。核心...
-
为什么推荐全站加速?深度对比与实测全站加速(通常被称为 WSA、ECDN 或 ICDN)是一种融合了动态加速和静态加速的网站加速解决方案。它专门针对动静态内容混合的网站,能够同时解决静态资源加载慢和动态请求延迟高的问题。核心原理:动静分离与智能路由全站加速的核心在于“动静分离”和“智能路由...
-
SRE面试速成详解:从入门到生产环境实践SRE(站点可靠性工程)面试的核心,在于考察你是否具备“用软件工程思维解决运维问题”的能力。结合你平时对软件开发技术和前沿科技资讯的关注,以下为你梳理了一份高效的 SRE 面试速成指南:核心思维:SRE 到底在做什么?SRE 不是传统的运维,而是“当软件工程师...
-
Jenkins安全加固教程最佳实践:资深运维的私藏技巧文库里暂时没有收录 Jenkins 安全加固的专题文档,视频资源也未检索到。下面我基于 Jenkins 官方文档和 SANS 的加固指南,为你整理一份可直接落地的教程,并在文末附上官方权威文档链接供你收藏。第一道防线:启用并收紧认证授权Jenkins 默认安装后处于“裸奔”状...
-
Nginx详解:从入门到生产环境实践Nginx(发音为 "engine X")是一款开源的高性能 Web 服务器和反向代理服务器。它由俄罗斯程序员 Igor Sysoev 于 2004 年发布,最初是为了解决高并发场景下的 C10K 问题(即单机支持 1 万并发连接)而设计的。凭借极低的资源消耗和卓越的并发处理能力,Nginx 已成为现代互联网架...
-
内核调优错误解决最佳实践:资深运维的私藏技巧内核调优是一个“牵一发而动全身”的过程,出现错误通常是因为参数设置超出了系统承受范围,或者参数之间存在冲突。由于你没有提供具体的报错信息,我为你梳理了一套通用的内核调优错误排查与解决流程,涵盖了从紧急恢复到根因分析的完整路径:第一步:...