Docker 安裝nginx
#1、搜索nginx 鏡像,建議大家去docker 搜索,可以看到幫助文檔
docker search nginx
#2、下載nginx 鏡像
docker pull nginx
#3、安裝運行容器,將容器命名為nginx01 3344 是宿主機端口 80是容器端口,宿主機&阿里雲需要開啓端口
docker run -d --name nginx01 -p 3344:80 nginx
#4、查看
curl localhost:3344
#5、進入容器
docker exec -it 容器id /bin/bash
docker 安裝Tomcat
docker run -d -p 3311:80 --name tomcat01 tomcat
#問題
#1、進入容器,Linux命令少了
#2、webapps
#原因:阿里雲鏡像原因,默認最小鏡像,非必要的刪除掉,確保最小可運行的環境
#思考問題,我們以後要部署項目,每次都需要進入容器是不是很麻煩,我們是否可以在外部
#提供一下映射路徑,webapps 在外部部署項目,同步到容器內就好了
問題:部署好了Tomcat ,可以訪問,但是提示404,為什麼?
原因:阿里雲鏡像原因,默認最小鏡像,非必要的刪除掉,確保最小可運行的環境
解決方案:
#1、進入容器內
docker exec -it 容器id /bin/bash
#2、複製webapps.dist 文件到webapps
cp -r webapps.dist/* webapps
解決後,訪問
docker elasticsearch+kibana
1、elasticsearch 暴露的端口非常多
2、elasticsearch 佔用內存大
3、elasticsearch 的數據需要放置到安全目錄,掛載
#--net somenetwork 網絡配置
$ docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.17.2
#啓動了elasticsearch Linux 就非常卡
firewall-cmd --state
#刪除容器,加內存限制,修改配置文件,-e 環境修改
#啓動的該容器佔用內存限制在64兆到512兆之間 -e ES_JAVA_OPTS="-Xms64m -Xmx512m"
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.17.2
#查看容器的內存佔用情況
docker stats 容器id
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
769a98a46852 elasticsearch 0.47% 519.9MiB / 1.776GiB 28.59% 41.3MB / 770kB 121MB / 84MB 54
如何使用kibana 鏈接 elasticsearch?
安裝mysql
#-d 後台運行 -p 端口映射 -v 數據卷 -e 環境配置 MYSQL_ROOT_PASSWORD 設置密碼 --name 容器的名稱
docker run -d -p 3311:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name=mysql01 mysql
#啓動成功後,使用Navicat Premium連接mysql
#創建test 數據庫,然後到宿主機/home/mysql/data 目錄下查看是否有test數據庫
將容器刪除,掛載到宿主機上的數據卷依舊存在沒有丟失,這個就實現了容器的持久化功能
多個mysql 同步數據
docker run -d -p 3344:3306 -e MYSQL_ROOT_PASSWORD=123456 --name=mysql02 --volumes-from mysql01 mysql
問題:mysql02 無法啓動