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 上也有很多有趣的项目,可以帮助开发者学习和尝试新的技术,后面可以找一些来尝试玩一玩。

长按二维码关注我们

有趣的灵魂在等你

相关推荐
向阳12185 分钟前
Dubbo负载均衡
java·运维·负载均衡·dubbo
荒Huang43 分钟前
Linux挖矿病毒(kswapd0进程使cpu爆满)
linux·运维·服务器
海阔天空_20131 小时前
Python pyautogui库:自动化操作的强大工具
运维·开发语言·python·青少年编程·自动化
桥田智能1 小时前
气爪在自动化装配线中是如何应用的?
运维·自动化
MonkeyKing_sunyuhua1 小时前
ubuntu22.04 docker-compose安装postgresql数据库
数据库·docker·postgresql
追风林1 小时前
mac m1 docker本地部署canal 监听mysql的binglog日志
java·docker·mac
€☞扫地僧☜€3 小时前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
茶馆大橘3 小时前
微服务系列六:分布式事务与seata
分布式·docker·微服务·nacos·seata·springcloud
其乐无涯3 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流3 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos