Docker 常用环境搭建 利用docker搭建http服务器
suiw9 2024-11-08 14:53 59 浏览 0 评论
Docker 安装nginx
nginx 镜像的默认端口为 80
# 下载nginx镜像
# 一般直接下载nginx即可,如果有特殊版本需求可以直接去dockerhup网站查询相应的版本列表
# PS:带alpine的镜像为瘦身版镜像
$ docker pull nginx
# 查看当前镜像【判断是否下载完成】
$ docker images
# 启动镜像
$ docker run -d --name nginx-alpine-01 -p 8080:80 nginx
# 查看启动后的容器
$ docker ps
Docker 安装Tomcat
tomcat 官方镜像的默认端口是 8080 端口,且官方默认镜像为最小镜像,会剔除多余的文件,若需要打开默认页面的话,直接进入容器,修改 webapp.dist 目录为 webapp ,即可打开默认网站页面
# 启动tomcat镜像
# 宿主机端口:9090
# 容器端口:8080
# 容器WEB目录:/usr/local/tomcat/webapps
# 宿主机目录:/home/xiaoyutab/Downloads/JavaBridge
$ docker run -d \
--name tomcat-01 \
-p 9090:8080 \
-v /home/xiaoyutab/Downloads/JavaBridge:/usr/local/tomcat/webapps \
tomcat
# 命令基本大同小异,所以此处仅写了一个启动命令
Docker 安装 php
php-fpm 为推荐安装的镜像文件,默认启用端口为 9000 端口,fpm 的根目录为 /www ,默认安装扩展的命令为 docker-php-ext-install ,默认启用扩展的命令为 docker-php-ext-enable redis ,
# 安装php-fpm7.4镜像
$ docker pull php:7.4-fpm
$ docker run -itd --name php-fpm-7.4 -p 9000:9000 -v /home/wwwroot:/home/wwwroot php:7.4-fpm
Docker 安装ES + ElasticHD
ES的特点:
- 暴露的端口很多
- 十分消耗内存
- 数据需要放置到安全目录(挂载)
# 下载ES
# 此命令安装的es版本有些低(默认为),所以下方的几个命令用来指定常用版本以便搜索使用
$ docker pull elasticsearch
$ docker pull elasticsearch:8.7.0
$ docker pull elasticsearch:7.17.9
# 运行ES搜索
$ docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch
# 因ES太过于占内存,一启动就需要1.x到3G内存,所以有时一启动ES就会直接卡死,所以我们需要给ES进行内存限制
# 因ES是使用java开发的,所以我们可以使用-e进行修改JAVA的配置,用以限制其内存用量
# 限制启动64m内存,最大128m内存(实测占用内存约为240M)
$ docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" elasticsearch
# 查看ES运行状态
$ curl 127.0.0.1:9200
{
"name" : "7OltMaD",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "tieiXDzIQXCBZfZjuAot1Q",
"version" : {
"number" : "5.6.12",
"build_hash" : "cfe3d9f",
"build_date" : "2018-09-10T20:12:43.732Z",
"build_snapshot" : false,
"lucene_version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}
# 安装ElasticHD
$ docker run -p 9800:9800 -d --link elasticsearch containerize/elastichd
# 检查运行状态
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d6a680d49f22 containerize/elastichd "ElasticHD" 4 seconds ago Up 3 seconds 0.0.0.0:9800->9800/tcp, :::9800->9800/tcp exciting_austin
590e19c45f33 elasticsearch "/docker-entrypoint.…" 7 minutes ago Up 7 minutes 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp elasticsearch
# 查看当前运行状态
# ElasticHD为可视化工具,所以我们此时可以直接在浏览器中打开localhost:9800进行连接
# 若连接不上ES,需输入地址【http://elasticsearch:9200】进行连接
Docker 安装MariaDB
# 下载mariadb【mysql同理,但是mysql 8以后的密码验证规则修改了,连接时可能会报错,建议使用8以前的版本】
$ docker image pull mariadb
# 运行mariadb
# 本地配置:/home/mysql/data MySQL数据存储目录
# 绑定端口:3366 开放本机端口
# 密码配置:root123 配置MySQL连接密码
$ docker run --name mysql01 -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root123 -p 3366:3306 -d mariadb
Docker 安装PolarDB-X
PolarDB-X 作为阿里云主打的一款企业云上服务器,此处仅提供一个测试部署服务,详情配置服务请前往官网进行查看
特点:面向超高并发、海量存储、复杂查询场景设计的云原生分布式数据库系统。
# 下载PolarDB-X镜像
$ docker pull polardbx/polardb-x
# 部署PolarDB-X
# 1. 创建PolarDB-X容器[快速启动一个具有一个 CN、一个 DN 和一个 CDC 进程的 PolarDB-X]
$ docker run -d --name some-polardb-x -p 8527:8527 polardbx/polardb-x
# 1.1. 链接数据库(因启动过程,此时需要等待大概一分钟左右)
$ mysql -h192.168.3.167 -P8527 -upolardbx_root -p123456
# 2. 启动一个包含容器的服务
$ docker run -d --name some-dn-and-gms --env mode=dev -p 4886:4886 -p 32886:32886 polardbx/polardb-x
# 2.1 等待容器运行,在容器中尝试以下命令以获取帐户my_polarx的密码,该密码可以在您的CN服务器中使用
$ mysql -h127.0.0.1 -P4886 -uroot -padmin -D polardbx_meta_db_polardbx -e "select passwd_enc from storage_info where inst_kind=2"
Docker 安装 Calibre-webserver
# 搜索 Calibre-webserver 镜像
$ docker images search calibre-web
# 我们此处选择 technosoft2000/calibre-web 版,虽然不是官方的,但是胜在大部分信息都已经配置好了
$ docker image pull technosoft2000/calibre-web # 此命令中的 image 可省略
# 进行挂载运行
# 设置挂载目录为:/home/golang_gin/CalibreData
# 设置外部端口为8083
$ docker run -d \
--name=calibre-web \
--restart=always \
-v /home/golang_gin/CalibreData:/books \
-p 8083:8083 \
technosoft2000/calibre-web
# 当然,上面的镜像太大,我们也可以使用官方镜像,官方镜像就比较小了,对于上面的1.xGB来说,只有六七百MB
$ sudo run -d \
--name=calibre-web \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-e DOCKER_MODS=linuxserver/calibre-web:calibre `#optional` \
-e OAUTHLIB_RELAX_TOKEN_SCOPE=1 `#optional` \
-p 8083:8083 \
-v /path/to/data:/config \
-v /path/to/calibre/library:/books \
--restart unless-stopped \
lscr.io/linuxserver/calibre-web:latest
Docker 安装 PolarDB-X
# 拉取PolarDB-X容器镜像
$ docker pull polardbx/polardb-x
# 启动 PolarDB-X 容器
# 使用宿主机的3306端口映射容器的8527端口,用于替代MySQL服务
# PS:原因:PolarDB-X 完美兼容MySQL5.7
$ docker run -d \
--name some-polardb-x \
-p 3306:8527 \
polardbx/polardb-x
Docker 安装 NSQ
# 下载nsq镜像
$ docker pull nsqio/nsq
# 启动nsq的lookup程序
$ docker run -d --name lookupd -p 4160:4160 -p 4161:4161 nsqio/nsq /nsqlookupd
# 启动nsq的nsqd程序(假设当前IP为130.130.4.166)
# 详细文档:https://nsq.io/components/nsqd.html
# --broadcast-address 广播地址
# --data-path 硬盘存储目录
# --lookupd-tcp-address lookupd服务所在的IP,默认本机
# --max-req-timeout 延时队列支持的最大延迟时间,默认3600000毫秒(1小时),单位毫秒
# --msg-timeout 失败后自动重试时长,单位毫秒,默认6000(1分钟)【重试次数由消费者进行手动确定限制】
$ docker run -d \
--name nsqd \
-p 4150:4150 \
-p 4151:4151 \
-v /home/xiaoyutab/Documents/wget/nsq:/media/nsq \
nsqio/nsq /nsqd \
--broadcast-address=130.130.5.113 \
--data-path /media/nsq \
--lookupd-tcp-address=130.130.5.113:4160
# 可选,启动nsq-admin服务
$ docker run -d \
--name nsqadmin \
-p 4171:4171 \
nsqio/nsq /nsqadmin --lookupd-http-address=130.130.5.113:4161
# 启动nsq-admin后,就可以访问【http://130.130.4.166:4171/nodes】进行在线管理了
Docker 安装alist
# alist是一款支持多种存储的目录文件列表程序,支持web浏览与webdav(只读),后端基于gin,前端使用react。
# 开放端口:
# docker源:xhofe/alist
# 下载镜像
$ docker pull xhofe/alist
# 启动alist的容器
# 官方推荐启动方式
$ docker run -d \ # 后台启动
--restart=always \ # 开机启动,失败重启
-v /etc/alist:/opt/alist/data \ # 文件挂载,本地/etc/alist挂载到容器内的/opt/alist/data
-p 8088:5244 \ # 端口映射,本地8088端口映射容器内的5244端口
-e PUID=0 \ # 设置ENV变量
-e PGID=0 \ # 设置ENV环境变量
-e UMASK=022 \ # 设置ENV环境变量
--name="alist" \ # 设置名称
xhofe/alist:latest
# 个人机器建议启动方式
$ docker run -d -p 8088:5244 --name "alist" xhofe/alist:latest
# 查看密码操作
$ docker exec -it alist ./alist admin
相关推荐
- 10款超实用JavaScript音频库(js播放音频代码)
-
HTML5提供了一种新的音频标签实现和规范用一个简单的HTML对象而无需音频插件来控制音频。这只是一个简单的整合这些新的HTML5音频特征及使用JavaScript来创建各种播放控制。下面将介绍10款...
- PROFINET转Modbus网关——工业协议融合的智能枢纽
-
三格电子SG-PNh750-MOD-221,无缝连接Profinet与Modbus,赋能工业物联产品概述...
- 简单实用的Modbus类库,支持从站和DTU
-
一、简介...
- [西门子PLC] S7-200 SMART PROFINET :通过GSD组态PLC设备
-
从S7-200SMARTV2.5版本开始,S7-200SMART开始支持做PROFINETIO通信的智能设备。从而,两个S7-200SMART之间可以进行PROFINETI...
- Modbus(RTU / TCP)有什么异同(modbus tcp和tcp)
-
Modbus是一种广泛使用的工业自动化通信协议,它支持设备之间的数据交换。Modbus协议有两个主要的变体:ModbusRTU(二进制模式)和ModbusTCP(基于TCP/IP网络的模式)。尽管...
- Modbus通信调试步骤详解(modbus调试工具怎么用)
-
Modbus通信调试步骤详解 Modbus通信分为串口和以太网,无论是串口还是以太网,只要是标准Modbus,就可以用Modbus模拟器进行调试。按以下几步进行调试。...
- 理解Intel手册汇编指令(intel 汇编指令手册)
-
指令格式...
- 「西门子PLC」S7-200 SMART的Modbus RTU通讯
-
S7-200SMART集成的RS485端口(端口0)以及SBCM01RS485/232信号板(端口1)两个通信端口可以同时做MODBUSRTU主站,或者一个做MODBUSRTU主站一个做MO...
- InfiniBand网络运维全指南:从驱动安装到故障排查
-
一、InfiniBand网络概述InfiniBand(直译为“无限带宽”技术,缩写为IB)是一种用于高性能计算的计算机网络通信标准,具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连。它...
- 一加回归 OPPO,背后的秘密不可告人
-
有这样一个手机品牌,它诞生于互联网品牌。在大众群体看来,它的身世似乎模糊不清,许多人以为它是国外品牌。它的产品定位是极客群体,深受国内发烧友,甚至国外极客玩家喜爱。...
- [西门子PLC] S7-200SMART快速高效的完成Modbus通信程序的设计
-
一、导读Modbus通信是一种被广泛应用的通信协议,在变频器、智能仪表还有其他一些智能设备上都能见到它的身影。本文呢,就把S7-200SMART系列PLC当作Modbus主站,把...
- 狂肝10个月手搓GPU,他们在我的世界中玩起我的世界,梦想成真
-
梦晨衡宇萧箫发自凹非寺量子位|公众号QbitAI自从有人在《我的世界》里用红石电路造出CPU,就流传着一个梗:...
- [西门子PLC] 博途TIA portal SCL编程基础入门:1-点动与自锁
-
一、S7-SCL编程语言简介...
- 工作原理系列之:Modbus(modbus工作过程)
-
MODBUS是一种在自动化工业中广泛应用的高速串行通信协议。该协议是由Modion公司(现在由施耐德电气公司获得)于1979年为自己的可编程逻辑控制器开发的。该协议充当了PLCS和智能自动化设备之间的...
你 发表评论:
欢迎- 一周热门
-
-
Linux:Ubuntu22.04上安装python3.11,简单易上手
-
宝马阿布达比分公司推出独特M4升级套件,整套升级约在20万
-
MATLAB中图片保存的五种方法(一)(matlab中保存图片命令)
-
别再傻傻搞不清楚Workstation Player和Workstation Pro的区别了
-
Linux上使用tinyproxy快速搭建HTTP/HTTPS代理器
-
如何提取、修改、强刷A卡bios a卡刷bios工具
-
Element Plus 的 Dialog 组件实现点击遮罩层不关闭对话框
-
MacOS + AList + 访达,让各种云盘挂载到本地(建议收藏)
-
日本组合“岚”将于2020年12月31日停止团体活动
-
SpringCloud OpenFeign 使用 okhttp 发送 HTTP 请求与 HTTP/2 探索
-
- 最近发表
-
- 10款超实用JavaScript音频库(js播放音频代码)
- Howler.js,一款神奇的 JavaScript 开源网络音频工具库
- PROFINET转Modbus网关——工业协议融合的智能枢纽
- 简单实用的Modbus类库,支持从站和DTU
- [西门子PLC] S7-200 SMART PROFINET :通过GSD组态PLC设备
- Modbus(RTU / TCP)有什么异同(modbus tcp和tcp)
- Modbus通信调试步骤详解(modbus调试工具怎么用)
- 理解Intel手册汇编指令(intel 汇编指令手册)
- 「西门子PLC」S7-200 SMART的Modbus RTU通讯
- InfiniBand网络运维全指南:从驱动安装到故障排查
- 标签列表
-
- dialog.js (57)
- importnew (44)
- windows93网页版 (44)
- yii2框架的优缺点 (45)
- tinyeditor (45)
- qt5.5 (60)
- windowsserver2016镜像下载 (52)
- okhttputils (51)
- android-gif-drawable (53)
- 时间轴插件 (56)
- docker systemd (65)
- slider.js (47)
- android webview缓存 (46)
- pagination.js (59)
- loadjs (62)
- openssl1.0.2 (48)
- velocity模板引擎 (48)
- pcre library (47)
- zabbix微信报警脚本 (63)
- jnetpcap (49)
- pdfrenderer (43)
- fastutil (48)
- uinavigationcontroller (53)
- bitbucket.org (44)
- python websocket-client (47)