本文教大家如何將常見的應(yīng)用使用 Docker 進(jìn)行部署,鞏固大家 Docker 命令的學(xué)習(xí)窟她,下文教大家如何構(gòu)建屬于我們自己的 Docker 鏡像码泞。
Tomcat
拉取鏡像。
docker pull tomcat
創(chuàng)建容器刹泄。
docker run -di --name tomcat -p 8080:8080 tomcat
進(jìn)入容器。
docker exec -it tomcat /bin/bash
查看 webapps
目錄下是否有 ROOT
項目怎爵,我們熟悉的 Tomcat 貓頁面一般就在這個項目中特石。
如上圖所示,該目錄下空空如也鳖链,其實 Tomcat 在比較新的版本中將默認(rèn)的 ROOT
項目放在了 webapps.dist
中姆蘸,如果你真想訪問 http://192.168.10.10:8080/ 看到 Tomcat 貓,將其復(fù)制至 webapps
即可。
訪問:http://192.168.10.10:8080/ 即可看到熟悉的面孔逞敷。
Nginx
拉取鏡像狂秦。
docker pull nginx
創(chuàng)建 Nginx 容器。
docker run -di --name nginx -p 80:80 nginx
將容器內(nèi)的配置文件拷貝到指定目錄(請先提前創(chuàng)建好目錄)推捐。
# 創(chuàng)建目錄
mkdir -p /mydata/docker_nginx
# 將容器內(nèi)的配置文件拷貝到指定目錄
docker cp nginx:/etc/nginx /mydata/docker_nginx/
重命名宿主機 /mydata/docker_nginx/nginx
為 /mydata/docker_nginx/conf
mv /mydata/docker_nginx/nginx/ /mydata/docker_nginx/conf
終止并刪除容器(目錄掛載操作只能在創(chuàng)建容器時設(shè)置)故痊。
docker stop nginx
docker rm nginx
創(chuàng)建 Nginx 容器,并將容器中的 /etc/nginx
目錄和宿主機的 /mydata/docker_nginx/conf
目錄進(jìn)行掛載玖姑。
docker run -di --name nginx -p 80:80 -v /mydata/docker_nginx/conf:/etc/nginx nginx
訪問宿主機:http://192.168.10.10:80/ 結(jié)果如下:
MySQL
拉取鏡像。
docker pull mysql:8.0.21
創(chuàng)建容器慨菱。
docker run -di --name mysql8 -p 3306:3306 -v /mydata/docker_mysql/conf:/etc/mysql/conf.d -v /mydata/docker_mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.21
-
-p
:代表端口映射焰络,格式為 宿主機映射端口:容器運行端口。 -
-e
:代表添加環(huán)境變量MYSQL_ROOT_PASSWORD
是 root 用戶的登陸密碼符喝。
連接容器中的 MySQL 時闪彼,只需要連接宿主機的 IP + 指定的映射端口即可。
也可以進(jìn)入容器并使用 MySQL 命令打開客戶端协饲。
# 進(jìn)入容器
docker exec -it mysql8 /bin/bash
# 使用 MySQL 命令打開客戶端
mysql -uroot -p1234 --default-character-set=utf8
Redis
拉取鏡像畏腕。
docker pull redis
創(chuàng)建容器。
docker run -di --name redis -p 6379:6379 redis
連接容器中的 Redis 時茉稠,只需要連接宿主機的 IP + 指定的映射端口即可描馅。
MongoDB
拉取鏡像。
docker pull mongo
創(chuàng)建容器而线。
docker run -di --name mongo -p 27017:27017 mongo
連接容器中的 MongoDB 時铭污,只需要連接宿主機的 IP + 指定的映射端口即可。
Elasticsearch
拉取鏡像膀篮。
docker pull elasticsearch:7.8.1
創(chuàng)建容器嘹狞,為了方便演示,修改 ES 啟動占用內(nèi)存大小誓竿。
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx512m" -e "discovery.type=single-node" -di --name es -p 9200:9200 -p 9300:9300 -p 5601:5601 -v /mydata/docker_es/plugins:/usr/share/elasticsearch/plugins elasticsearch:7.8.1
安裝中文分詞器磅网。
# 進(jìn)入容器
docker exec -it es /bin/bash
# 安裝中文分詞器
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.1/elasticsearch-analysis-ik-7.8.1.zip
# 重啟 es
docker restart es
訪問:http://192.168.10.10:9200/ 結(jié)果如下:
安裝 head 插件
拉取鏡像。
docker pull mobz/elasticsearch-head:5
創(chuàng)建容器筷屡。
docker run -di --name es-head -p 9100:9100 mobz/elasticsearch-head:5
在瀏覽器中打開 elasticsearch-head 頁面涧偷,填入 Elasticsearch 地址。
這里會出現(xiàn)跨域拒絕訪問的問題速蕊,進(jìn)入 elasticsearch 容器內(nèi)部嫂丙,修改配置文件 elasticsearch.yml
。
# 進(jìn)入容器
docker exec -it 容器ID或名稱 /bin/bash
# 修改配置文件
vi config/elasticsearch.yml
在 elasticsearch.yml
中添加如下內(nèi)容规哲。
# 跨域請求配置(為了讓類似 head 的第三方插件可以請求 es)
http.cors.enabled: true
http.cors.allow-origin: "*"
重啟容器跟啤。
docker restart es
Solr
拉取鏡像。
docker pull solr
創(chuàng)建容器。
docker run -di --name=solr -p 8983:8983 solr
訪問:http://192.168.10.10:8983/solr/#/ 結(jié)果如下:
RabbitMQ
拉取鏡像隅肥。
docker pull rabbitmq
創(chuàng)建容器竿奏。
docker run -di --name rabbitmq -p 4369:4369 -p 5671:5671 -p 5672:5672 -p 15671:15671 -p 15672:15672 -p 25672:25672 rabbitmq
進(jìn)入容器并開啟管理功能。
# 進(jìn)入容器
docker exec -it rabbitmq /bin/bash
# 開啟 RabbitMQ 管理功能
rabbitmq-plugins enable rabbitmq_management
訪問:http://192.168.10.10:15672/ 使用 guest
登錄賬號密碼腥放,結(jié)果如下:
應(yīng)用部署的練習(xí)就到這里泛啸,接下來該學(xué)習(xí)學(xué)習(xí)如何構(gòu)建屬于我們自己的 Docker 鏡像啦。
本文采用 知識共享「署名-非商業(yè)性使用-禁止演繹 4.0 國際」許可協(xié)議
秃症。
大家可以通過 分類
查看更多關(guān)于 Docker
的文章候址。
?? 您的點贊
和轉(zhuǎn)發(fā)
是對我最大的支持。
?? 關(guān)注公眾號 哈嘍沃德先生
「文檔 + 視頻」每篇文章都配有專門視頻講解种柑,學(xué)習(xí)更輕松噢 ~