Docker快速安装常用软件,两句命令部署应用

点击上方"AI搞事情"关注我们


什么是docker

Docker 是一个由 Go 语言进行开发实现的开源应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器,容器是完全使用沙箱机制,相互之间不会有任何接口。

镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。

容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。

仓库(Repository):集中存放镜像文件的地方,实现镜像的集中存储和分发的服务。Docker Hub便是一个由Docker官方提供的云服务平台,用于存储、分享和管理Docker镜像。

Docker可以实现应用的快速交付和运行应用,下面列举一些可以快速搭建一些基础应用和服务的部署方式。

NGINX

简介:一个高性能的HTTP和反向代理web服务器,可以用来做负载均衡及反向代理使用。

部署

go 复制代码
docker pull nginx

docker run  --name myNginx -d -p 8089:80 -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/conf.d:/etc/nginx/conf.d  -v /data/nginx/logs:/var/log/nginx nginx
  • nginx.conf
go 复制代码
user nginx;
worker_processes auto;
events {
    worker_connections 1024;
}
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    client_max_body_size     500m;
    client_header_timeout    1m;
    client_body_timeout      1m;
    proxy_connect_timeout     60s;
    proxy_read_timeout      1m;
    proxy_send_timeout      1m;
    proxy_cache_path /var/imgcachetest levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=1g;
    
    server {
        listen       8080;
        location / {
            root   /web/dist;
            index  index.html;
            try_files $uri $uri/ /index.html;
        }
    }

}

REDIS

go 复制代码
docker search redis

docker pull redis

docker run -d -p 6379:6379 --name myredis -v redisdata:/data redis --requirepass "redis123" --appendonly yes

-d redis 表示后台启动redis。

--name myredis 指定该容器名称,查看和进行操作都比较方便。

-p 6379:6379 端口映射:前表示主机部分,后表示容器部分。

--requirepass "redis123" redis登入密码。

--appendonly yes 开启redis 持久化。(重启redis数据也不会丢失或丢失小部分)

MYSQL

简介:MySQL 是一个常用的开放源码的小型关联式数据库管理系统。

部署

go 复制代码
docker pull mysql:latest

docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/var/log/mysql -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql

-v: 将数据目录映射到宿主机的目录
-p: 端口映射
-e: 环境变量
-d: 后台运行

报错:sha256_password or caching_sha2_password auth methods

修改root加密方式:增加 -e identified=mysql_native_password

MongoDB

简介:是免费开源的跨平台 NoSQL 数据库。

部署

go 复制代码
docker pull mongo

docker run -d -p 27017:27017 --name my-mongo-container -v /docker/mongodb/data:/data/db --restart=always --privileged=true mongo --auth

达梦

简介:国产化数据库。

部署

官方文档:

https://eco.dameng.com/document/dm/zh-cn/start/dm-install-docker.html

go 复制代码
docker load -i dm8_20230808_rev197096_x86_rh6_64_single.tar
// 启动容器
docker run -d -p 30236:5236 --restart=always --name dm8_test --privileged=true -e PAGE_SIZE=16 -e LD_LIBRARY_PATH=/opt/dmdbms/bin -e  EXTENT_SIZE=32 -e BLANK_PAD_MODE=1 -e LOG_SIZE=1024 -e UNICODE_FLAG=1 -e LENGTH_IN_CHAR=1 -e INSTANCE_NAME=dm8_test -v /data/dm8_test:/opt/dmdbms/data dm8_single:dm8_20230808_rev197096_x86_rh6_64

通过以下命令可以查看 Docker 镜像中数据库初始化的参数。

go 复制代码
docker inspect dm8_test

Portainer

简介:Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。。

部署

go 复制代码
# 拉取Portainer的官方Docker镜像
docker pull portainer/portainer
 
# 运行Portainer容器,并将管理UI绑定到主机的9000端口
docker run -d -p 9100:9000 -v /home/run/docker.sock:/var/run/docker.sock --name portainer portainer/portainer

通过IP:9100进行访问

minio

简介:一款高性能高可用的分布式对象存储系统,可以用来替换FastDFS。

部署

go 复制代码
docker pull minio/minio

 // 启动容器
docker run --privileged=true -d -p 9000:9000 -p 9001:9001 --name minio -d --restart=always   -e "MINIO_ROOT_USER=minioadmin"   -e "MINIO_ROOT_PASSWORD=minioadmin"   -v /opt/minio/data:/data   -v /opt/minio/config:/root/.minio -v /opt/minio/logs:/var/log/minio    minio/minio server /data --console-address ":9001"

-p 9000:9000:这个参数将容器内的9000端口映射到宿主机的9000端口。MinIO服务默认使用9000端口提供API服务。

-p 9001:9001:这个参数将容器内的9090端口映射到宿主机的9090端口。这是MinIO的控制台(Console)端口,用于访问MinIO的图形用户界面。

-d:这个参数告诉Docker以"detached"模式运行容器,即在后台运行。

-e "MINIO_ROOT_USER=minio":设置环境变量MINIO_ROOT_USER,这是访问MinIO服务的用户名称,这里设置为minio。

-e "MINIO_ROOT_PASSWORD=minio123":设置环境变量MINIO_ROOT_PASSWORD,这是访问MinIO服务的用户密码,这里设置为minio123。

-v /usr/local/minio-data:/data:这个参数将宿主机的目录/usr/local/minio-data挂载到容器的/data目录。MinIO会将所有数据存储在这个目录。

-v /usr/local/minio-config:/root/.minio:这个参数将宿主机的目录/usr/local/minio-config挂载到容器的/root/.minio目录。这个目录用于存储MinIO的配置文件和数据。

minio/minio:这是要运行的Docker镜像的名称,这里使用的是官方发布的MinIO镜像。

server /data:这是传递给MinIO程序的命令行参数,告诉MinIO以服务器模式运行,并且使用/data目录作为其数据存储位置。

--console-address ":9001":这个参数指定MinIO控制台服务的监听地址和端口。在这个例子中,它设置为监听所有接口上的9090端口。

--address ":9000":这个参数指定MinIO API服务的监听地址和端口。在这个例子中,它设置为监听所有接口上的9000端口。

容器启动之后,就可以通过访问http://IP:9001来访问MinIO的Web界面,输入刚才设置的账号和密码(minioadmin/minioadmin)进行登录。

mindoc

简介:Go 实现的在线简单好用的文档管理系统,支持增加 Markdown 和 HTML 两种编辑器。

部署

go 复制代码
docker pull registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1

docker run -p 8181:8181 --name mindoc -e DB_ADAPTER=mysql -e MYSQL_PORT_3306_TCP_ADDR=127.0.0.1 -e MYSQL_PORT_3306_TCP_PORT=3306 -e MYSQL_INSTANCE_NAME=数据库名 -e MYSQL_USERNAME=账号 -e MYSQL_PASSWORD=密码 -e httpport=8181 -it registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1

这样就创建了MinDoc实例,访问8181端口就能访问主页啦

it-tools

简介:IT-Tools是一款开源的便捷解决我们日常遇到的小问题的工具集合,支持Docker私有化部署,具备大量的好用的小功能,如各种加密解密、token解析、url解析等等。

部署

go 复制代码
// 汉化版:
docker pull qingfeng2336/it-tools
// 原版:
docker pull corentinth/it-tools:latest

docker run -d --name it-tools --restart unless-stopped -p 1818:80 qingfeng2336/it-tools:latest

通过IP:1818就可以访问了

metabase

简介:Metabase是一个开源的商业智能工具,您可以通过它理解数据、分析数据,进行数据查询并获取格式化结果(图形化视图)。

部署

go 复制代码
docker pull metabase/metabase
 
docker run -d -p 3000:3000 -e MB_SITE_NAME="AIgost" -v /home/local/metabase:/metebase/ -v /metabase-data:/metabase-data --name metabase metabase/metabase

IP:3000访问首页,然后就可以配置可视化图表了

除了这些开源的工具类应用,Docker Hub 上也有很多有趣的项目,可以帮助开发者学习和尝试新的技术,后面可以找一些来尝试玩一玩。

长按二维码关注我们

有趣的灵魂在等你

相关推荐
大树887 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠8 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质8 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工9 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn869 小时前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智9 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_10 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉10 小时前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦11 小时前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
2601_9618752411 小时前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant