Docker学习笔记(七)— Docker 部署 Nginx / Tomcat / ES

Docker Alice 5个月前 (12-13) 158次浏览 0个评论

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 最新超详细版教程通俗易懂


女程序员博客 , 版权所有丨本站采用BY-NC-SA协议进行授权 , 转载请注明Docker 学习笔记(七)— Docker 部署 Nginx / Tomcat / ES

【声明】:本博客仅为分享信息,不参与任何交易,也非中介,所有内容仅代表个人观点,均不作直接、间接、法定、约定的保证,读者购买风险自担。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。

【关于安全】:任何 IDC 都有倒闭和跑路的可能,备份永远是最佳选择,服务器也是机器,不勤备份是对自己极不负责的表现,请保持良好的备份习惯。

喜欢 (3)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址