docker之(二)安裝容器

一、安裝MySQL

#1、下載mysql 5.7鏡像
 docker pull mysql:5.7

#2、查看docker鏡像
docker images

#3、創(chuàng)建實例并啟動
docker run -p 3306:3306 --name mysql \
-v /data/mysql/log:/var/log/mysql \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

#參數(shù)說明:
docker run :docker 啟動一個容器
-p 3306:3306 : 將容器 3306 端口映射到主機到3306端口
--name mysql :為當前容器命名為 mysql
\ : 換行標志
`:` : 與容器內(nèi)部的文件夾進行 掛載
-v /data/mysql/log:/var/log/mysql : 將日志文件夾掛載到主機
-v /data/mysql/data:/var/lib/mysql : 將mysql運行期間的數(shù)據(jù)文件掛載到主機
-v /data/mysql/conf:/etc/mysql : 將配置文件夾掛載到主機
-e MYSQL_ROOT_PASSWORD=123456 :初始化 root   用戶密碼

#4、創(chuàng)建mysql配置文件
vi /data/mysql/conf/my.cnf

#寫入配置信息
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
default-time-zone='+08:00'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

#5、重啟mysql容器
docker restart mysql

#6、設(shè)置容器在docker啟動的時候啟動
docker update mysql --restart=always

二、安裝redis

#1、下載鏡像(最新)
docker pull redis

#2、創(chuàng)建目錄 / 配置文件
mkdir -p /data/redis/conf
#創(chuàng)建配置文件
touch /data/redis/conf/redis.conf

#3、安裝redis / 掛載配置文件
docker run -p 6379:6379 --name redis \
-v /data/redis/data:/data \
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

#4、連接redis容器
docker exec -it redis redis-cli
# 測試
127.0.0.1:6379> set h hello
OK
127.0.0.1:6379> get h
"hello"
127.0.0.1:6379> exit

#5、重啟redis
docker restart redis

#6、修改redis配置文件(設(shè)置持久化)
cd /data/redis/conf
vi redis.conf
#拷貝
appendonly yes

#7、設(shè)置容器在docker啟動的時候啟動
docker update redis --restart=always

三、安裝nginx

#1、下載nginx鏡像(最新)
docker pull nginx

#2、創(chuàng)建目錄 / 配置文件
mkdir -p /data/nginx/log
mkdir -p /data/nginx/conf

#3、啟動容器
docker run --name nginx -p 80:80 -d nginx

#4、從nginx容器中的目錄文件拷貝到宿主機(逐條依次執(zhí)行)
docker cp nginx:/usr/share/nginx/html  /data/nginx
docker cp nginx:/etc/nginx/nginx.conf  /data/nginx/conf
docker cp nginx:/etc/nginx/conf.d  /data/nginx/conf

#5、刪除容器
docker stop nginx
docker rm nginx

#6、安裝nginx / 掛載配置文件
docker run -p 80:80 --name nginx \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/log:/var/log/nginx \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /data/nginx/conf/conf.d:/etc/nginx/conf.d \
-d nginx

#7、設(shè)置容器在docker啟動的時候啟動
docker update nginx --restart=always

http://IP/

image.png

Q&A
  • Q: no "events" section in configuration
  • A: 在nginx.conf文件中添加
    events {
    worker_connections 1024;
    }

四、安裝nacos

#1、下載nacos鏡像(最新)
docker pull nacos/nacos-server:1.1.4

#2、創(chuàng)建目錄 / 配置文件
mkdir -p /data/nacos/log
# mkdir -p /data/nacos/conf

#3、啟動容器
docker run --env MODE=standalone --name nacos -p 8848:8848 -d nacos/nacos-server:1.1.4

#4、從nacos容器中的目錄文件拷貝到宿主機(逐條依次執(zhí)行)
docker cp nacos:/home/nacos/conf  /data/nacos

#5、刪除容器
docker stop nacos
docker rm nacos

#6、安裝nacos/ 掛載配置文件(nacos默認工作目錄為/home目錄,可查看docker官網(wǎng))
docker run --env MODE=standalone -p 8848:8848 --name nacos \
-v /data/nacos/conf:/home/nacos/conf \
-v /data/nacos/log:/home/nacos/logs \
-d nacos/nacos-server:1.1.4

訪問地址:http://IP:8848/nacos
用戶名/密碼: nacos / nacos

image.png

五、安裝seata

seata官方文檔:https://seata.io/zh-cn/docs/ops/deploy-by-docker.html

# 查看seata鏡像:docker search seata
#1、下載seata鏡像(1.0.0)
docker pull seataio/seata-server:1.0.0

##2、創(chuàng)建目錄 / 配置文件
mkdir -p /data/seata/log
mkdir -p /data/seata/conf

#3、啟動seata-server實例  / 掛載鏡像文件
docker run --name seata-server -p 8091:8091 -d seataio/seata-server:1.0.0

#4、進入seata容器
docker exec -it seata-server sh

#5、修改配置 / 指定注冊中心
cd /seata-server/resources
vi registry.conf

# 配置注冊中心
registry {                                                      
  # file ...nacos ...eureka...redis...zk...consul...etcd3...sofa
  type = "nacos"                               
                                  
  nacos {                                      
    application = "seata-server"               
    serverAddr = "127.0.0.1:8848"            
    namespace = ""                             
    cluster = "default"                        
    username = "nacos"                         
    password = "nacos"                         
  } 
……
:wq

#5、重啟seata
docker restart seata-server

#6、設(shè)置容器在docker啟動的時候啟動
docker update seata-server --restart=always

六、安裝sentinel

sentinel官方文檔:https://github.com/alibaba/Sentinel/wiki/%E6%8E%A7%E5%88%B6%E5%8F%B0#2-%E5%90%AF%E5%8A%A8%E6%8E%A7%E5%88%B6%E5%8F%B0
dockerHub: https://hub.docker.com/r/bladex/sentinel-dashboard/tags?page=1&ordering=last_updated

#1、拉取sentinel鏡像(1.7.1)
docker pull bladex/sentinel-dashboard:1.7.1

#2、啟動容器
docker run --name sentinel -p 8858:8858 -d bladex/sentinel-dashboard:1.7.1

訪問地址:http://IP:8858
用戶名/密碼: sentinel / sentinel

image.png

七、安裝zipkin 服務(wù)鏈路追蹤

官方文檔:https://zipkin.io/

# docker 安裝 zipkin 服務(wù)器
docker run --name zipkin -p 9411:9411 -d openzipkin/zipkin

# 設(shè)置容器在docker啟動的時候啟動
docker update zipkin --restart=always

訪問地址:http://ip:9411/zipkin/

image.png

八、安裝RabbitMQ

官方文檔:https://www.rabbitmq.com/networking.html
消息隊列模型:https://www.rabbitmq.com/getstarted.html

#1、docker 安裝 rabbitmq
docker run --name rabbitmq \
-p 5671:5671 \
-p 5672:5672 \
-p 4369:4369 \
-p 25672:25672 \
-p 15671:15671 \
-p 15672:15672 \
-d rabbitmq:management:3.8.2

#端口說明:--參考官網(wǎng)文檔
4369, 25672 (Erlang發(fā)現(xiàn)&集群端口) 
5672, 5671 (AMQP端口) 
15672 (web管理后臺端口) 
61613, 61614 (STOMP協(xié)議端口) 
1883, 8883 (MQTT協(xié)議端口)

# 2、設(shè)置容器在docker啟動的時候啟動
docker update rabbitmq --restart=always

訪問地址:http://IP:15672
用戶名/密碼: guest/ guest

image.png

image.png

九、安裝Elasticsearch

#1、下載鏡像(版本7.4.2 es與kibana版本要一致)
docker pull elasticsearch:7.4.2

#2、創(chuàng)建掛載目錄
mkdir -p /data/elasticsearch/config
# es存儲的數(shù)據(jù),掛載到外部 data文件夾
mkdir -p /data/elasticsearch/data

#3、配置訪問權(quán)限
echo "http.host: 0.0.0.0" >> /data/elasticsearch/config/elasticsearch.yml

命令解析:
    echo :linux字符串的輸出命令
    "http.host: 0.0.0.0" : 配置"http.host: 0.0.0.0"代表es可以被遠程的任何機器進行訪問
    >> : 雙尖括號代表寫入,把配置寫入 elasticsearch.yml文件中

# 配置用戶權(quán)限(讀、寫、執(zhí)行)
chmod -R 777 /data/elasticsearch/

#4、運行容器 / 掛載目錄
docker run --name elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

命令解析:
    -p 9200:9200 :暴露端口9200,用于后臺發(fā)起http請求的端口
    -p 9300:9300 :暴露端口9300,用于es在分布式集群狀態(tài)下 節(jié)點之間通信端口
    -e "discovery.type=single-node" :指定參數(shù),es以單節(jié)點模式運行
    -e ES_JAVA_OPTS="-Xms64m -Xmx512m" :設(shè)置es的初始內(nèi)存和最大內(nèi)存,否則一啟動es會默認占用全部內(nèi)存(非常重要)
    -v 其余配置 : 掛載 容器中的文件與宿主機文件關(guān)聯(lián),若修改宿主機的配置就等于修改容器中的配置

訪問地址:http://IP:9200/

es_login.png

  • 擴展:安裝 elasticsearch-head
1、下載鏡像
docker pull mobz/elasticsearch-head:5

#2、運行容器
docker run --name elasticsearch-head -p 9100:9100 -d docker.io/mobz/elasticsearch-head:5

訪問地址:http://ip:9100/

head.png

十、安裝Kibana

安裝文檔:https://www.elastic.co/guide/en/kibana/current/docker.html

#1、下載鏡像(版本7.4.2)
docker pull kibana:7.4.2

#2、運行容器
docker run --name kibana \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://IP(es安裝地址):9200 \
-d kibana:7.4.2

命令解析:
    -e ELASTICSEARCH_HOSTS : 修改參數(shù),指定es連接地址

訪問地址:http://IP:5601

kibana.png

十一、安裝MinIO

mkdir -p /data/minio/{data,config}

docker run -p 9000:9000 --name minio \
  -e "MINIO_ACCESS_KEY=***" \
  -e "MINIO_SECRET_KEY=***" \
  -v /data/minio/data:/data \
  -v /data/minio/config:/root/.minio \
  -d minio/minio server /data

訪問 http://ip:9000/

十二、安裝Mongodb

# 下載最新版本
docker pull mongo

# 創(chuàng)建數(shù)據(jù)持久化目錄
mkdir -p /data/mongo/data

# 運行容器
docker run -p 27017:27017 --name mongo \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=db@password \
-v /data/mongo/data:/data/db \
-d mongo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容