docker 练习
practise nginx
搜索nginx 也可以去网站(https://hub.docker.com/_/nginx)
docker search nginx
(看英文排错 iptab的错可以重启)
docker run -d --name nginx01 -p 3344:80 nginx
curl localhost:3344
-p 宿主机端口:容器端口 (容器端口为80,设置这一条主要是与虚拟机的端口形成映射访问虚拟机3344端口时,来到容器)
http:192.168.1.133:3344
运行测试
whereis nginx (输出nginx的文件)
[root@docker ~]# docker exec -it nginx90 /bin/bash
root@f15be14eb8d5:/#
root@f15be14eb8d5:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@f15be14eb8d5:/# cd /etc/nginx/
root@f15be14eb8d5:/etc/nginx#
root@f15be14eb8d5:/etc/nginx# ls
conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
root@f15be14eb8d5:/etc/nginx#
进入容器内改配置文件
如何做到在外部修改映射文件,然后内部docker自动修改配置?
tomcat
docker run -it --rm tomcat:9.0
--rm 阅后即焚 退出了就删掉
docker run -d -p 3351:8080 --name tomcat2201 tomcat:9.0
运行9.0版本的镜像
docker exec -it tomcat932 /bin/bash
运行被阉割了,并且linux命令少了。保证最小可运行环境
webapps没有文件
但是webapps.dist有文件,将他们拷贝到webapps
容器外提供映射路径
es+kibana
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
--net somenetwork ?网络配置
-e "discovery.type=single-node" 集群配置
es 暴露端口多 es 十分耗内存 es数据一般需要放置到安全目录 挂载
启动后非常卡
docker stats 查看内存状态
men usage / limit
1.25g /3.84g
测试
curl localhost:9200
成功,关掉es(太卡了)
增加内存限制,修改配置文件 -e 环境配置修改
docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xms512m" elasticsearch:7.6.2
最大512m内存 限制运行环境内存
756.9MiB / 3.84GiB
测试
curl localhost:9200
使用kibanna连接es
Docker网络原理
可视化
portainer
docker 图形化界面管理工具,提供后台面板供启动
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
--restart =always 状态?
-v 为挂载到本机 --privileged=true 授权
安装控制面板portainer/portainer
访问测试
http://192.168.1.133:8088/#/init/admin
选择local
(页面做的还可以)
docker镜像讲解
所有引用直接打包部署
从远程仓库下载
朋友拷贝
自己制作镜像
UniosFS 联合文件系统
分层下载
新增与叠加
tomcat的下载centos mysql则不用下载
拥有就不用了重新下载
docker的镜像由一层一层构成
容器的boot层没了 但是内核使用的是主机的(底层的内核引导不会再次启动)
docker inspect layers
layers有很多层
列如第一层,有人安装过了他就不做了
安装未安装的
镜像每操作一步就会加一层,层楼之下的软件将被复用,不会再安装
版本升级则会替换
特点
启动tomcat 原来的镜像+操作的内容 可以被打包成新镜像
镜像层 无法改变 run之后则会新加一层 再次被打包