CentOS 7 Docker 安装软件
整理记录一些docker安装软件的流程
目录
②方式二:在线安装(慢),如果找到更快的下载地址的话推荐使用
Docker 概念
-
Docker 是一个开源的应用容器引擎
-
诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)
-
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。
-
容器是完全使用沙箱机制,相互隔离。
-
容器性能开销极低。
-
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)
docker容器虚拟化 与 传统虚拟机比较
-
相同:
容器和虚拟机具有相似的资源隔离和分配优势
-
不同:
容器虚拟化的是操作系统,虚拟机虚拟化的是硬件。
传统虚拟机可以运行不同的操作系统,容器只能运行同一类型操作系统
一、CentOS 7 安装docker
# 1、yum 包更新到最新
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)
# 4、 安装docker,出现输入的界面都按 y
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
设置阿里云镜像加速器:
mkdir -p /etc/docker
vi /etc/docker/daemon.json
daemon.json内容如下:
{
"registry-mirrors": ["https://k03gsl1f.mirror.aliyuncs.com"]
}
重启:
sudo systemctl daemon-reload
sudo systemctl restart docker
二、docker安装nginx
拉取官方最新版本镜像:
$ docker pull nginx:latest
查看本地镜像:
$ docker images
运行容器:
docker run --name nginx -d -p 80:80 nginx
参数说明:
-
--name nginx:容器名称。
-
-p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
-
-d nginx: 设置容器在在后台一直运行。
2.1、如果为了方便编辑配置和发布静态资源,可以挂载数据卷
创建文件夹 :
cd /opt
mkdir nginx
cd nginx
mkdir conf conf.d html logs
vi /opt/nginx/html/index.html:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>
vi /opt/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;#keepalive_timeout 0;
keepalive_timeout 65;#gzip on;
server {
listen 80;
server_name localhost;#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#修改默认发布路径
root /usr/share/nginx/html;
index index.html index.htm;
}error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}}
}
启动容器:
docker run --name nginx -d -p 80:80 -v /opt/nginx/html:/usr/share/nginx/html -v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/nginx/logs:/var/log/nginx -v /opt/nginx/conf.d:/etc/nginx/conf.d nginx
外部访问需要打开linux防火墙指定端口
三、docker安装MySQL
拉取镜像:
$ docker pull mysql:5.7
查看本地镜像:
$ docker images
自定义容器:
docker network create --driver bridge mybridge
运行容器:
docker run -itd --net=mybridge --name mysql57 -v /data/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root daocloud.io/library/mysql:5.7.7 --lower_case_table_names=1
参数说明:
-
-v :挂载数据卷,保证容器数据持久化,当删除容器后,数据依然存在。
-
-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
-
MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
可能出现的错误:
navicat连接报错,原因是mysql最新版更新来认证插件( caching_sha2_password ),改了后navicat就连接不上,所以需要改回 mysql_native_password 。
四、docker安装redis
拉取最新版本镜像:
$ docker pull redis:latest
查看本地镜像:
$ docker images
运行容器:
$ docker run -itd --name redis-test -p 6379:6379 redis --requirepass Dreamtale199432
参数说明:
-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。
通过 redis-cli 连接测试使用 redis 服务:
$ docker exec -it redis-test /bin/bash
五、docker安装rabbitMQ
拉取镜像:
docker pull daocloud.io/library/rabbitmq:3.6.1-management
创建容器:
docker run -d --name rabbitmq3.6.1 -p 5672:5672 -p 15672:15672 -v `pwd`/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin 0aaf0120f505
参数说明:
-d 后台运行容器;
--name 指定容器名;
-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
-v 映射目录或文件;
将当前路径下(由pwd
)的data文件夹映射到docker中的/var/lib/路径下的的rabbitmq文件夹,这样,docker下的/var/lib/rabbitmq就指向来本机的pwd
/data文件夹;
--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
可以使用浏览器打开web管理端:http://Server-IP:15672
六、docker安装FastDFS
1.获取FastDFS镜像:
docker image pull delron/fastdfs
2.运行tracker:
docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
参数说明:
--network=host 类似于vmware中的桥接模式,容器和宿主机(centos)在同一个网络,但是没有独立ip,和centos同一个ip。
3.运行storage:
docker run -dti --network=host --name storage -e TRACKER_SERVER=120.25.104.87:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage
注意:如果无法重新运行,可以删除/var/fdfs/storage/data
目录下的fdfs_storaged.pid
文件,然后重新运行storage, 注意这个pid文件十分重要!!
6.1、上传测试:
进入容器:
docker exec -it storage /bin/bash
进入etc目录 :
cd /etc
利用自带客户端上传yum.conf:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf yum.conf
如果成功,将返回文件id:
group1/M00/00/00/wKj5lF-8YFSAf7GfAAAD-xaDY2s60.conf
返回linux主机,开放端口:
firewall-cmd --zone=public --permanent --add-port=8888/tcp
firewall-cmd --zone=public --permanent --add-port=22122/tcp
firewall-cmd --zone=public --permanent --add-port=23000/tcp
systemctl restart firewalld
下载测试:
http://requestUrl:8888/group1/M00/00/00/wKj5lGFL8pSAWTJWAAAD-xaDY2s17.conf
七、docker安装elasticsearch7.8
拉取原始镜像 :
docker pull elasticsearch:7.8.0
或者拉取国内镜像(推荐) :
docker pull daocloud.io/library/elasticsearch:7.8.0
创建数据卷
mkdir -p /usr/local/dockeres/data
mkdir -p /usr/local/dockeres/logs
mkdir -p /usr/local/dockeres/config
cd /usr/local/
chmod -R 777 dockeres
将以下链接的配置文件拷贝到linux的/usr/local/dockeres/config/目录下:
运行容器 :
docker run -di --name=es2 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" \
-v /usr/local/dockeres/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /usr/local/dockeres/config/jvm.options:/usr/share/elasticsearch/config/jvm.options \
-v /usr/local/dockeres/data:/usr/local/dockeres/data \
-v /usr/local/dockeres/logs:/usr/local/dockeres/logs \
-v /usr/local/dockeres/plugins/:/usr/share/elasticsearch/plugins/ \
121454ddad72
如果安装有一些网络警告,建议重启一下linux
进入数据卷目录:
cd /usr/local/dockeres/config/
vi jvm.options :
自定义运行内存
-Xms256m
-Xmx256m
vi elasticsearch.yml :
cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
重启ElasticSearch容器 :
docker restart es
查看日志 :
docker logs es -f
当出现以下信息,表示已经启动成功 :
2020-09-23T03:28:17.986586995Z {"type": "server", "timestamp": "2020-09-23T03:28:17,978Z", "level": "INFO", "component": "o.e.g.GatewayService", "cluster.name": "docker-cluster", "node.name": "59ecb68242af", "message": "recovered [0] indices into cluster_state", "cluster.uuid": "yNciBGGDTlCb18mUY9ArOA", "node.id": "Ut2NwQA4SsuPSItOFOI3zA" }
windows中访问测试 :
注意检查防火墙对应端口是否打开 :
firewall-cmd --list-port
如果未开,手动开一下
firewall-cmd --permanent --zone=public --add-port=9200/tcp
firewall-cmd --permanent --zone=public --add-port=9300/tcp重启
firewall-cmd --reload
7.1、安装ik插件
①方式一:
下载elasticsearch-analysis-ik-7.8.0:
上传zip到centos 的/usr/local/dockeres/plugins/目录
解压:
unzip elasticsearch-analysis-ik-7.8.0.zip -d ./ik
删除压缩包(必须):
rm elasticsearch-analysis-ik-7.8.0.zip
重启容器:
docker restart es
②方式二:在线安装(慢),如果找到更快的下载地址的话推荐使用
进入容器:
docker exec -it es /bin/bash
在线下载并安装(大概30分钟) :
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.0/elasticsearch-analysis-ik-7.8.0.zip
退出容器 :
exit
重启ElasticSearch容器:
docker restart es
八、docker安装nacos
拉取镜像 :
docker pull nacos/nacos-server:1.2.1
启动容器 :
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server:1.2.1
测试: http://requestUrl:8848/nacos/index.html
nacos的默认端口号是8848,默认账号密码是nacos/nacos。至此安装已经结束。
更多推荐
所有评论(0)