1、Docker 安装 Nginx
# 下载镜像 pull [root@cloud ~]# docker pull nginx [root@cloud ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest f652ca386ed1 5 days ago 141MB centos latest 5d0da3dc9764 2 months ago 231MB # -d 后台运行 # --name 给容器命名 # -p 宿主机端口:容器内部端口 [root@cloud ~]# docker run -d --name nginx01 -p 3344:80 nginx 8203edc7ced1058330b42e4e0105193c68e984486a9fb2301094d81dd423c5ab [root@cloud ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8203edc7ced1 nginx "/docker-entrypoint.…" 3 seconds ago Up 3 seconds 0.0.0.0:3344->80/tcp, :::3344->80/tcp nginx01 [root@cloud ~]# curl localhost:3344 # 可通过宿主机 ip:3344 访问 # 进入容器 [root@cloud ~]# docker exec -it nginx01 /bin/bash root@8203edc7ced1:/# whereis nginx nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx root@8203edc7ced1:/# cd /etc/nginx/ root@8203edc7ced1:/etc/nginx# ls conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
2、Docker 安装 Tomcat
# docker run -it --rm tomcat:9.0 docker run -it --rm # 一般用来测试,用完就删除 # 下载 [root@cloud ~]# docker pull tomcat # 启动运行 [root@cloud ~]# docker run -d -p 3355:8080 --name tomcat01 tomcat # 测试访问 宿主机 ip:3355 # 进入容器 [root@cloud ~]# docker exec -it tomcat01 /bin/bash # 问题:1、linux 命令少了,2、没有 webapps。阿里云镜像的原因,默认是最小的镜像,所有不必要的都剔除了。 # 只保证最小可运行的环境!
3、Docker 安装 ES
# es 暴露的端口很多 # es 十分的耗内存 # es 的数据一般需要放置到安全目录! 挂载 # docker stats 查看 cpu 的状态 # 直接使用命令 docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2 启动 elasticsearch,服务器容易卡住
# 增加内存的限制,修改配置文件,通过 -e 环境配置修改 # -e ES_JAVA_OPTS="-Xms64m -Xmx512m" 增加内存限制 # -e "discovery.type=single-node" 集群 默认单个节点 docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch # 问题:安装的时候报错:docker: Error response from daemon: driver failed programming external connectivity on endpoint elasticsearch (2f061709408452b692851f9293ef8c6683108cab281025dc715e5599846fa2d5): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9200 -j DNAT --to-destination 172.17.0.2:9200 ! -i docker0: iptables: No chain/target/match by that name. # 这是由于来自守护进程的错误响应,而致使外部连接失败。解决的办法就是将其 docker 进程 kill 掉,然后再 清空掉 iptables 下 nat 表下的所有链(规则) 。最后,将 docker 的网桥删除,并重启 docker 服务 # 解决方法: [root@cloud /]# pkill docker # 终止进程 [root@cloud /]# iptables -t nat -F # 清空 nat 表的所有链 [root@cloud /]# ifconfig docker0 down # 停止 docker 默认网桥 [root@cloud /]# brctl delbr docker0 -bash: brctl: 未找到命令 [root@cloud /]# yum install bridge-utils -y # 安装 brctl [root@cloud /]# brctl delbr docker0 # 删除网桥 [root@cloud /]# systemctl restart docker # 重启 docker
# 查看 docker stats [root@cloud ~]# docker stats CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 90bf7c0648f5 beautiful_williams 0.00% 1.852MiB / 1.795GiB 0.10% 656B / 0B 4.46MB / 0B 1 [root@cloud /]# curl localhost:9200
分享:Docker学习视频地址:【狂神说 Java】Docker 最新超详细版教程通俗易懂