您好,欢迎来到爱玩科技网。
搜索
您的当前位置:首页Docker便捷安装以及使用Docker安装项目基础设施依赖教程

Docker便捷安装以及使用Docker安装项目基础设施依赖教程

来源:爱玩科技网

服务端依赖安装

如果觉得一个个用docker安装麻烦:可使用docker-compose一键安装。

Docker安装

便携式安装

1.一键安装命令
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
2.创建Docker用户组
sudo groupadd docker
3.将登陆用户加入到docker用户组中,解决Docker执行命令权限问题
sudo usermod -aG docker $(whoami)
4.更新用户组
newgrp docker
5.添加Docker镜像源(根据服务器的不同,选择不同镜像源)
vim /etc/docker/daemon.json
#阿里源
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

6.重启Docker使配置生效
systemctl restart docker

MySQL

Docker安装MySQL

1.拉取MySQL 5.7版本官方镜像
docker pull mysql:5.7
2.启动MySQL镜像创建容器
docker run -p 3306:3306 --name mysql -v /home/mysql/data:/var/lib/mysql --restart always -e MYSQL_ROOT_PASSWORD=123 -idt mysql:5.7

-p:将本机端口3306映射到容器3306端口

–name:mysql 启动镜像后容器名

–restart:always 容器始终自启动

-e :设置参数 MYSQL_ROOT_PASSWORD 指定登录密码,这里设置的是123,可替换自己的密码

-i:让容器的标准输入保持打开

-d: 后台运行容器

-t:让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上

3.查看MySQL服务是否整形运行
docker ps

4.使用Navicat或其他数据库可视化工具,连接安装的数据库。

MongoDB

Docker安装MongoDB

1.拉取MongoDB官方镜像
docker pull mongo
2.启动MongoDB镜像
docker run -p 27017:27017 --name mongo -v /home/mongodb/data:/data/db --restart always -idt mongo:latest

-p:宿主机端口27017映射到容器27017端口

–name:mongo 启动镜像后容器服务名

–restart:always 容器自启动

-i:让容器的标准输入保持打开

-d: 后台运行容器

-t:让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上

3.查看MongoDB服务是否正常运行
docker ps

4.以admin用户身份进入mongo
docker exec -it mongo mongo admin

5.创建管理员用户:root和密码:123
db.createUser({ user: 'root', pwd: '123', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

6.退出容器
exit
7.使用MongoDB官方可视化工具MongoDB Compass或其它客可视化工具连接

连接mongo Authentication可选择none直接登录,如果选择username/password,账号密码就是上一步创建管理员设值的账号和密码。

Redis

Docker安装Redis

1.拉取Redis官方镜像
docker pull redis
2.启动Redis镜像
   #无配置文件启动
   docker run -p 6379:6379 -v /home/redis/data:/data  -v /etc/localtime:/etc/localtime --name redis --restart always -idt redis
   #需要配置文件
   docker run -p 6379:6379 -v /home/redis/data:/data -v /home/redis/config/redis.conf:/usr/local/redis/config/redis.conf -v /etc/localtime:/etc/localtime --name redis --restart always -idt redis redis-server /usr/local/redis/config/redis.conf

-p:6379:6379 宿主机端口6379映射容器6379端口

-v: /etc/localtime:/etc/localtime容器同步宿主机

-v: /home/redis/config/redis.conf:/usr/local/redis/config/redis.conf宿主机配置文件挂载到容器中

–name:redis 启动镜像后容器服务名

–restart:always 容器自启动

-i:让容器的标准输入保持打开

-d: 后台运行容器

-t:让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上

redis-server /usr/local/redis/config/redis.conf:启动redis 使用配置文件方式启动

3.查看Redis服务是否正常运行
docker ps

Kafka

Docker安装Kafka

Kafka安装有点特殊,在Kafka设计中选择了使用zookeeper来进行所有Broker的管理。所以安装Kafka之前,需要安装zookeeper,同时也要启动zookeeper。

1.拉取Kafka依赖镜像zookeeper
 docker pull wurstmeister/zookeeper
2.启动zookeeper镜像作为Kafka依赖服务
docker run -p 2181:2181 -v /etc/localtime:/etc/localtime --name zookeeper --restart always -d  wurstmeister/zookeeper

-p:2181:2181 宿主机端口2181映射容器2181端口

-v:/etc/localtime:/etc/localtime 容器时间同步宿主机时间

–name:zookeeper 启动镜像后容器服务名

–restart:always 容器始终自启动

-d:后台运行

3.查看zookeeper服务是否正常运行
docker ps

4.拉取Kafka镜像(stars最多的Kafka非官方镜像,可使用docker search Kafka查看)
docker pull wurstmeister/kafka
5.启动Kafka镜像
docker run -p 9092:9092 -v /etc/localtime:/etc/localtime --name kafka --restart always -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=X.X.X.X:2181  -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://X.X.X.X:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -d wurstmeister/kafka

-p:9092:9092 本机端口9092映射到容器9092端口

-v:/etc/localtime:/etc/localtime 容器时间同步宿主机时间

–name:kafka 启动镜像后容器服务名

–restart:always 容器始终自启动

-e:KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己

-e:KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://X.X.X.X:9092 kafka listeners注册到zookeeper中,是暴露给外部的服务

-e:KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 kafka真正监听的listeners

6.查看Kafka服务是否正常运行
docker ps

Etcd

Etcd镜像需要去Github官方仓库发行页安装,有很多开发以及测试版本,寻找一个验证后的稳定版本,依据步骤,以及启动实例代码,启动拉取的镜像。

Etcd Github官方发行页:https://github.com/etcd-io/etcd/releases

Docker安装Etcd

1.拉取Github发行页上 Etcd最新稳定版镜像
#当前官方etcd  最新稳定版是v3.2.32
docker pull quay.io/coreos/etcd:v3.2.32
2.启动Etcd
docker run -p 2379:2379 -p 2380:2380 \
  --name etcd-v3.2.32 --restart=always -d\
  quay.io/coreos/etcd:v3.2.32 \
  /usr/local/bin/etcd \
  --name s1 \
  --data-dir /etcd-data \
  --listen-client-urls http://0.0.0.0:2379 \
  --advertise-client-urls http://0.0.0.0:2379 \
  --listen-peer-urls http://0.0.0.0:2380 \
  --initial-advertise-peer-urls http://0.0.0.0:2380 \
  --initial-cluster s1=http://0.0.0.0:2380 \
  --initial-cluster-token tkn \
  --initial-cluster-state new

-p: 2379:2379 本机端口2379映射容器2379端口

-p: 2380:2380 本机端口2380映射容器2380端口

–name: etcd-v3.2.32 启动镜像后容器名称

–listen-client-urls: http://0.0.0.0:2379 侦听客户端流量的URL列表

–advertise-client-urls: http://0.0.0.0:2379 告知客户端url, 对外提供服务的url

–listen-peer-urls: http://0.0.0.0:2380 监听URL,用于与其他节点通讯

–initial-advertise-peer-urls: http://0.0.0.0:2380 告知集群其他节点url.(对于集群内提供服务的url)

–initial-cluster: s1=http://0.0.0.0:2380 用于引导的初始群集配置

–initial-cluster-token: tkn 引导期间etcd集群的初始集群令牌。

–initial-cluster-state: new 初始群集状态(“new”或“existing”)。new对于初始静态或DNS引导过程中存在的所有成员,如果将此选项设置为existing,则etcd将尝试加入现有集群.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务