Docker安装nginx
#1.搜索镜像 docker search 建议到dockerhub上搜索
#2.下载镜像 docker pull
#3.运行测试
[root@localhost /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ae2feff98a0c 12 days ago 133MB
centos latest 300e315adb2f 2 weeks ago 209MB
# -d代表后台运行 --name给容器命名 -p 宿主机:容器内部端口
[root@localhost /]# docker run -d --name nginx01 -p 3344:80 nginx
73d39cfb1db082dd0a915b2a8eaa7d178f011e56ab7c4486217a40390c9e7f13
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
73d39cfb1db0 nginx "/docker-entrypoint.…" 4 seconds ago Up 3 seconds 0.0.0.0:3344->80/tcp nginx01
912c9ac7851b centos "/bin/bash" 20 hours ago Up 20 hours sad_snyder
[root@localhost /]# curl localhost:3344
#进入容器并查询nginx目录
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
73d39cfb1db0 nginx "/docker-entrypoint.…" 35 minutes ago Up 35 minutes 0.0.0.0:3344->80/tcp nginx01
912c9ac7851b centos "/bin/bash" 21 hours ago Up 21 hours sad_snyder
[root@localhost /]# docker exec -it nginx01 /bin/bash
root@73d39cfb1db0:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
端口暴露的概念
docker内部启动的项目,需要做端口映射宿主机才能够访问,以此来便于外网能够访问
**思考:**我们每次修改nginx的配置文件都要进入容器中修改,显得十分麻烦,我们是不是可以在容器外部提供一个映射路径,达到在容器外修改文件,容器内部可以自动修改? -v 数据卷
Docker装一个tomcat
#官方的使用
docker run -it --rm tomcat:9.0
#我们之前的启动都是后台,停止了容器之后,容器还是可以查到 docker run -it --rm 一般用来测试,用完删除
#下载再启动
docker pull tomcat:9.0
#启动运行
docker run -d -p 3355:8080 --name tomcat01 tomcat
#测试访问没问题,但报404错误
#进入容器
docker exec -it tomcat01 /bin/bash
#发现问题:1.linux命令少了 2.没有webapps 阿里云镜像的原因。默认是最小镜像,所有不必要的都剔除掉
#保证最小可运行的环境!
思考:我们以后部署项目,如果每次都要进入容器是不是很麻烦? 我要是可以在容器外部提供一个映射路径,webapps,我们在外部放置项目,就自动同步到内部就好了
部署es+kibana
#es 暴露的端口很多
#es 十分的耗内存
#es 的数据一般需要放置到安全的路径
#--net somenetwork ? 网络配置
#启动
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
#启动了之后 Linux就卡住了 docker stats 查看cpu的状态
# 测试一下es是否成功
#如果成功就赶紧关闭,增加内存的限制
#赶紧关闭,增加内存呢的限制,修改配置文件 -e 环境配置修改
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS=ES_JAVA_OPTS="Xms64m -Xms512m" elasticsearch:7.6.2
思考:使用kibana连接es?网络如何才能连接过去
可视化
什么是portainer?
Docker图形化界面管理工具!提供一个后台面板供我们操作
docker run -d -p 8088:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
访问测试:http://ip:8088/