Docker 安装Nginx

#1. 搜索镜像 search 建议大家去docker搜索,可以看到帮助文档 
#2. 拉取镜像 pull 
#3. 运行测试 
# -d 后台运行 
# --name 给容器命名 
# -p 宿主机端口:容器内部端口
➜ ~ docker run -d --name nginx00 -p 3344:80 nginx 
75943663c116f5ed006a0042c42f78e9a1a6a52eba66311666eee12e1c8a4502 
➜ ~ docker ps 
CONTAINER ID     IMAGE   COMMAND  CREATED     STATUS      PORTS  NAMES 
75943663c116     nginx   "nginx -g 'daemon of…" 41 seconds ago 
Up 40 seconds 0.0.0.0:3344->80/tcp nginx00 
➜ ~ curl localhost:3344  #测试

端口暴露示意图:

image20201230154239173.png

思考问题:我们每次改动nginx配置文件,都需要进入容器内部?十分的麻烦,要是可以在容器外部提

供一个映射路径,达到在容器修改文件名,容器内部就可以自动修改?→ 数据卷!

Docker 安装tomcat

# 官方的使用 
docker run -it --rm tomcat:9.0 
# 之前的启动都是后台,停止了容器,容器还是可以查到 
# docker run -it --rm image 一般是用来测试,用完就删除(暂时不建议) 
--rm Automatically remove the container when it exits 
#下载 
docker pull tomcat 
#启动运行
思考问题:我们以后要部署项目,如果每次都要进入容器是不是十分麻烦?要是可以在容器外部提供一
个映射路径,webapps,我们在外部放置项目,就自动同步内部就好了!
作业3:部署es+kibana
docker run -d -p 8080:8080 --name tomcat01 tomcat 
#测试访问有没有问题 
curl localhost:8080 
#进入容器 
➜ ~ docker ps 
CONTAINER ID    IMAGE      COMMAND            CREATED 
STATUS          PORTS       NAMES 
db09851cf82e     tomcat  "catalina.sh run"   28 seconds ago 
Up 27 seconds  0.0.0.0:8080->8080/tcp    tomcat01 
➜ ~ docker exec -it db09851cf82e /bin/bash 
root@db09851cf82e:/usr/local/tomcat# 
# 发现问题:1、linux命令少了。 2.没有webapps 
# 阿里云镜像(阉割版),它为保证最小镜像,将不必要的都剔除了→保证最小可运行环境!

思考问题:我们以后要部署项目,如果每次都要进入容器是不是十分麻烦?要是可以在容器外部提供一

个映射路径,webapps,我们在外部放置项目,就自动同步内部就好了!

Docekr部署es+kibana

# es 暴露的端口很多! 
# es 十分耗内存 
# es 的数据一般需要放置到安全目录!挂载 
# --net somenetwork ? 网络配置 


# 下载启动elasticsearch(Docker一步搞定)
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e 
"discovery.type=single-node" elasticsearch:7.6.2 
# 测试一下es是否成功启动 
➜ ~ curl localhost:9200 { 
"name" : "d73ad2f22dd3",
"cluster_name" : "docker-cluster", 
"cluster_uuid" : "atFKgANxS8CzgIyCB8PGxA", 
"version" : { 
"number" : "7.6.2", 
"build_flavor" : "default", 
"build_type" : "docker", 
"build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
"build_date" : "2020-03-26T06:34:37.794943Z", 
"build_snapshot" : false, 
"lucene_version" : "8.4.0", 
"minimum_wire_compatibility_version" : "6.8.0", 
"minimum_index_compatibility_version" : "6.0.0-beta1" 
},
"tagline" : "You Know, for Search" 
}
# 查看docker容器使用内存情况(每秒刷新,也挺耗内存的一个命令) 
➜ ~ docker stats
#关闭,添加内存的限制,修改配置文件 -e 环境配置修改 
➜ ~ docker rm -f d73ad2f22dd3 

➜ ~ docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e 
"discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" 
elasticsearch:7.6.2
➜ ~ curl localhost:9200 
{ 
"name" : "b72c9847ec48", 
"cluster_name" : "docker-cluster", 
"cluster_uuid" : "yNAK0EORSvq3Wtaqe2QqAg",
"version" : {
"number" : "7.6.2", 
"build_flavor" : "default", 
"build_type" : "docker", 
"build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
"build_date" : "2020-03-26T06:34:37.794943Z", 
"build_snapshot" : false, 
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0", 
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search" 
}

使用kibana连接es?思考网络如何才能连接。

image20201230155131368.png

Docker可视化

什么是portainer?

Docker图形化界面管理工具!提供一个后台面板供我们操作!

# 运行如下命令即可 打开可视化服务
docker run -d -p 8080:9000 \ --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

访问:localhost:8080

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议