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實驗教師總結_#docker


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實驗教師總結_docker實驗教師總結_02

解決後,訪問

docker實驗教師總結_elasticsearch_03

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?

docker實驗教師總結_elasticsearch_04


安裝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 無法啓動

docker實驗教師總結_#docker_05

docker實驗教師總結_docker實驗教師總結_06