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
複製代碼

還須要寫啥,請留言

相關文章
相關標籤/搜索