图可对照前四篇!
命令小结!
前4片为最常用的命令,后续还有很多!
练习:
docker 部署Nginx
docker 安装Nginx !
1.搜索镜像 serch
2.下载镜像 pull
3.运行测试
[root@localhost home]# docker search nginx
[root@localhost home]# docker pull nginx
[root@localhost home]# docker images
# -d 后台运行
# --name 给容器命名
# -p 宿主机端口:容器端口
[root@localhost home]# docker run -d --name nainx01 -p 3344:80 nginx
[root@localhost home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2e1bda33eaaf nginx "/docker-entrypoint.…" 5 minutes ago Up 5 minutes 0.0.0.0:3344->80/tcp nainx01
[root@localhost home]# curl localhost:3344
#进入容器
[root@localhost home]# docker exec -it 2e1bda33eaaf /bin/bash
root@2e1bda33eaaf:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@2e1bda33eaaf:/# cd /etc/nginx
root@2e1bda33eaaf:/etc/nginx# ls
conf.d fastcgi_params koi-utf koi-win mime.types modules nginx.conf scgi_params uwsgi_params win-utf
端口暴露的概念:
思考:我们每次改动nginx的配置文件,都需要进入容器内部,十分麻烦! 我要是可以在容器外部提供一个映射路径,达到在容器修改文件名,容器内部就可以修改! -v数据卷!
docker 安装tomcat
#官方使用
docker run -it --rm tomcat:9.0
#我们之前的启动都是后台,停止了容器之后,容器还是可以查到,docker run -it --rm tomcat:9.0用完即删
#下载
docker pull tomcat
#启动运行,tomcat的8080映射到主机的3355
docker run -d --name tomcat01 -p 3335:8080 tomcat
#测试访问发现问题 页面404
http://192.168.59.133:3355
1.linux命令少了
2.没有webapps 显示404
#原因: 阿里云镜像,默认是最小镜像。所有不必要的都会删除掉!
#保证最小可运行的环境
#进入容器
[root@localhost home]# docker exec -it tomcat01 /bin/bash
#目前webapps下没有项目可跑,可将webapps.dist下项目文件cp到webapps下!
[root@localhost home]# cp -r webapos.dist/* webapps/
#重新测试访问tomcat页面显示正常!
思考问题: 我们以后要部署项目, 如果每次都进入容器是不是十分麻烦? 我们要是可以在容器外部提供一个映射路径,webapps,我们在外部放置项目,就自动同步到内部就好了!
部署 es+kbana
#es 暴露端口很多!
#es 十分耗内存
#es 的数据一般需要放置在安全目录! 挂载
#--net somenetwork 网络配置
#启动 elasticsearch
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
#启动后 linux就卡住了 docker stats 查看cpu的状态
[root@localhost home]# docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
ba6186e88725 elasticsearch 0.67% 443.8MiB / 972.4MiB 45.65% 2.77kB / 2.59kB 3.12GB / 421MB 46
#测试看下是否成功!
[root@localhost home]# curl localhost:9200
{
"name" : "ba6186e88725",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "kM9dF-UGTUOBUxYtPFcZjA",
"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 run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single.node" -e ES_JAVA_OPTS="-Xms64m -Xmx512" elasticsearch:7.6.2
使用libana连接es, 网络如何才能连接过去?