docker基础练习
练习
nginx
[root@localhost home]# docker search nginx
[root@localhost home]# docker pull nginx
[root@localhost home]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine xiaowangc1.0 b5226f57471e 3 weeks ago 249MB
nginx latest 605c77e624dd 6 months ago 141MB
hello-world latest feb5d9fea6a5 9 months ago 13.3kB
centos latest 5d0da3dc9764 10 months ago 231MB
#-d 后台运行 --name起名字 -p端口设置
[root@localhost home]# docker run -d --name nginx11 -p 3344:80 nginx
c71d3d33d66061c5872fac4d1024a23177511324995d2258fe30987888909923
#查看运行状态
[root@localhost home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c71d3d33d660 nginx "/docker-entrypoint.…" 3 minutes ago Up 3 minutes 0.0.0.0:3344->80/tcp, :::3344->80/tcp nginx11
#进入容器
[root@localhost home]# docker exec -it nginx11 /bin/bash
root@c71d3d33d660:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@c71d3d33d660:/#
端口暴露的概念
部署tomcat
在docker hub 查看tomcat的版本
https://hub.docker.com/search?q=tomcat
#官方的使用
docker run -it --rm tomcat:9.0
#之前的启动都是后台,停止了容器之后还可以查到
#官方的使用,用完就会删除d
docker run -it --rm
#下载启动
[root@localhost ~]# docker pull tomcat:9.0
#启动测试
[root@localhost ~]# docker run -d -p 3355:8080 --name tomcat01 tomcat
8e7329b4c2769101de8302ddb4a470bf1288aa9ad378b4f86b189aa987f0ab2b
#测试访问没问题
#进入容器
[root@localhost ~]# docker run -it tomcat /bin/bash
root@2bc3bb1e618f:/usr/local/tomcat#
#发现问题 1.linux命令少了 2.没有webapps 原因:镜像原因,默认最小化
很多功能被阉割了,保证最小化运行
思考问题:我们以后都要部署项目,如果每次都要进入容器是不是会很麻烦?要是能在容器外部提供一个映射路径,webapps,在外部部署项目,就自动同步就好了??
部署 ES+Kibana
#ES暴露的端口很多
#ES很占用内存
#ES需要放置在安全目录 挂载
#--name elasticsearch 网络配置
#启动elasticsearch
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
#启动了,发现整个虚拟机卡顿 docker stats 查看cpu的状态
#关闭ES 进行内存的限制
#通过-e进行内存大小的限制 -e ES_JAVA_OPTS="-Xms64m _Xms512m"
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
Kibana的原理:
可视化
#portainer(先用这个)
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portain
#Rancher(CI/CD再用)
什么是portainer
docker的一个图形化界面管理工具,提供一个后台进行操作
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portain
docker volume create portainer_data
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
cd /usr/libexec/docker/
sudo ln -s docker-runc-current docker-runc
使用http//:ip地址:端口测试
http://192.168.130:9000
进行用户的创建
选择仓库(建议选择本地的)
进入之后的面板
可以清楚的看到本地的容器的一些信息
可视化面板很少使用