Docker搭建ES,Mysql,Redis,MongoDb,Mq,Maven私服

Centos7安装dokcer CE

#先删除已有的
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo docker run hello-world
#你过你敲docker敲不出来反应,而加了sudo又有反应,那么你应该添加你的docker权限。
sudo usermod -aG docker (你的用户)
复制代码

安装Docker Compose

curl -L https://github.com/docker/compose/releases/download/1.25.0-rc4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
复制代码

Docker 搭Mysql

docker pull mysql
#默认会下最新版。须要其余版本,请加后缀tag好比, mysql:5.7,就会抽取5.7的。
docker run -p 3306:3306 --name sql_docker -e MYSQL_ROOT_PASSWORD=123 -d mysql
复制代码

说明 -p 3306:3306 将容器内3306端口映射到宿主机
--name 运行的容器名
-e environment(环境),指定容器启动时候的环境变量。能够指定其余环境变量以下 。 MYSQL_ROOT_PASSWORD:root 密码 。
MYSQL_DATABASE:[可选的] 容器启动后自动建立的数据库。
MYSQL_USER, MYSQL_PASSWORD: [可选的] 建立对应MYSQLDATABASE数据库的用户名和密码,并默认拥有MYSQL_DATABSE全部权限
MYSQL_ALLOW_EMPTY_PASSWORD:[可选] 是否容许密码为空。
MYSQL_RANDOM_ROOT_PASSWORD:[可选] 随机生成root密码,并会经过标准输出输出到控制台。
MYSQL_ONETIME_PASSWORD:[可选] 我感受没啥用,就是说你第一次登录mysql后必须修改你的root密码。
-d 后台运行
最后指定镜像名称
使用本地mysql.cnf映射到容器内node

docker run --name some-mysql -v {你的mysql配置地址}:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
复制代码

将容器内mysql数据存储到宿主机mysql

docker run --name some-mysql -v {你的存储地址}:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
复制代码

最后进入mysql容器开启远程登录linux

docker exec -it {运行起来的mysql容器名,或者hash码} bash
mysql -uroot -p 
grant all privileges on *.* to 'root'@'%' identified by '{你的root密码}';
flush privileges;
复制代码

Redis

docker pull redis
#同样的能够经过 redis:{tag名} 来选择拉取那个版本的镜像
docker run --name {你想要等redis运行时候容器名} -p 6379:6379 -d redis
复制代码

定制化配置文件,同样的使用-v参数。git

$ docker run -v {你的配置文件地址}:/usr/local/etc/redis/redis.conf --name {你的容器名} redis redis-server /usr/local/etc/redis/redis.conf
复制代码

MongoDb

docker pull mongo
docker run --name myMongo -p 27017:27017 -d mongo:tag
复制代码

定制配置文件启动github

docker run --name some-mongo -v /my/custom:/etc/mongo -d mongo --config /etc/mongo/mongod.conf
复制代码

环境变量 使用-e指定, MONGO_INITDB_ROOT_USERNAME, MONGO_INITDB_ROOT_PASSWORD
宿主机存储数据 ,同样同样用 -vredis

docker run --name some-mongo -v /my/own/datadir:/data/db -d mongo
复制代码

RabbitMq

docker pull rabbitmq:management
docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management
#5672为程序接入接口,15672为后台WebUI接入口。
复制代码

Docker搭建Maven私服

hub.docker.com/r/sonatype/…sql

docker pull sonatype/nexus3
#数据持久化
docker run -d -p 8081:8081 --name nexus -v {你的持久化苏主机地址}:/nexus-data sonatype/nexus3
复制代码

两条命令就完成了,很简单吧。打开浏览器访问,默认有个帐户为admin,帐户密码在你的持久化文件夹的admin.password文件中,固然也能够去容器内部/nexus3文件夹下看。
Nexus能够搭建不少私服,包括Yum,Python,Npm等等,有兴趣能够参考官网文档。docker

ES单机

Pull 官方镜像数据库

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.4.2
复制代码

离线Image地址
单节点centos

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.4.2
复制代码

还须要写啥,请留言

相关文章
相关标签/搜索