第六篇 Docker练习
docker 安装 nginx
1.搜索镜像 search 建议去dockerhub搜索,可以看到帮助文档
地址:https://hub.docker.com/_/nginx
[root@docker ~]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 17062 [OK]
2.下载镜像 pull
[root@docker ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete
a9edb18cadd1: Pull complete
589b7251471a: Pull complete
186b1aaa4aa6: Pull complete
b4df32aa5a72: Pull complete
a0bcbecc962e: Pull complete
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
3.运行测试
[root@docker ~]# docker run -d --name nginx001 -p 1110:80 nginx
b7f3825abebef988589cb4f94327014956db408d7b085b7bc1d4d8aca7f5d745
#-d后台运行
#–name 给容器命名
#-p 宿主机端口,容器内部端口
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b7f3825abebe nginx "/docker-entrypoint.…" 12 seconds ago Up 10 seconds 0.0.0.0:1110->80/tcp, :::1110->80/tcp nginx001
8cabaded8052 centos "/bin/bash" 21 minutes ago Up 17 minutes busy_curie
[root@docker ~]# curl localhost:1110
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
#进入容器
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b7f3825abebe nginx "/docker-entrypoint.…" 17 minutes ago Up 17 minutes 0.0.0.0:1110->80/tcp, :::1110->80/tcp nginx001
8cabaded8052 centos "/bin/bash" 38 minutes ago Up 34 minutes busy_curie
[root@docker ~]# docker exec -it nginx001 /bin/bash
root@b7f3825abebe:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@b7f3825abebe:/# cd /etc/nginx
root@b7f3825abebe:/etc/nginx# ls
conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
root@b7f3825abebe:/etc/nginx#
端口暴露
问题:我们每次改动nginx配置文件,都需要进入容器内部,十分麻烦。要是可以在容器外部提供一个映射路径,达到在容器修改文件名,容器内部就可自动修改?-v 数据卷
安装 tomcat
官方使用
docker run -it --rm tomcat:9.0
#我们之前的启动都是后台,容器还是可以被查到 docker run -it --rm,一般用来测试,用完就删除
下载后在启动
docker pull tomcat
启动运行
docker run -d -p 3355:80 --name tomcat01 tomcat
测试访问有没有问题
进入容器
[root@docker ~]# docker exec -it tomcat01 /bin/bash
发现问题,1.linux命令太少了 2.没有webapps.阿里云镜像的原因。默认是最小的镜像,所以不必要的都剔除掉。
root@ac9642edc8b0:/usr/local/tomcat# ls
BUILDING.txt NOTICE RUNNING.txt lib temp work
CONTRIBUTING.md README.md bin logs webapps
LICENSE RELEASE-NOTES conf native-jni-lib webapps.dist
root@ac9642edc8b0:/usr/local/tomcat# cd webapps
root@ac9642edc8b0:/usr/local/tomcat/webapps# ls
root@ac9642edc8b0:/usr/local/tomcat/webapps# cd webapps.dist
bash: cd: webapps.dist: No such file or directory
root@ac9642edc8b0:/usr/local/tomcat/webapps# cd ..
root@ac9642edc8b0:/usr/local/tomcat# cd webapps.dist
root@ac9642edc8b0:/usr/local/tomcat/webapps.dist# ls
ROOT docs examples host-manager manager
root@ac9642edc8b0:/usr/local/tomcat/webapps.dist# cp -r webapps.dist/* webapps
cp: cannot stat 'webapps.dist/*': No such file or directory
root@ac9642edc8b0:/usr/local/tomcat/webapps.dist# cd ..
root@ac9642edc8b0:/usr/local/tomcat# cp -r webapps.dist/* webapps
root@ac9642edc8b0:/usr/local/tomcat# cd webapps
root@ac9642edc8b0:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager
问题:我们每次要部署的项目,如果每次都需要进入容器内部,十分麻烦。要是可以在容器外部提供一个映射路径,webapps,我们在外部放置项目,就可自动同步到内部就好了?
安装es + kibana
#es 暴露的端口很多
#es 十分的耗内存
#es的数据一般需要放置到安全目录!挂载
#–net somenetwork ? 网络配置
启动 elasticsearch
[root@docker ~]# docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 --e "discovery.type=single-node" elasticsearch:7.6.2
启动了 linux卡住了
查看CPU的状态
docker stats
#测试一下es是成功了的
#赶紧关闭,增加内存的限制,修改配置文件 -e 环境变量
docker run -d --name elasticsearch11 -p 9201:9201 -p 9301:9301 -e “discovery.type=single-node” -e ES_JAVA_OPTS=“-Xms64m -Xmx512m” elasticsearch:7.6.2
查看状态 docker stats
#docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
c298d691d25a elasticsearch 0.39% 837.4MiB / 1.777GiB 46.02% 656B / 0B 1.7GB / 58.6MB 41
测试一下ce是够成功了
[root@docker ~]# curl localhost:9200
{
"name" : "c298d691d25a",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "9aXLZ2RZQp2q_L_Sy_zcCQ",
"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?网络要如何才能连接过去!
可视化
1.portainer(暂时先用这个)
docker run -d -p 8088:9000 \
--restart=always -v /var/run/docker.sock:var/run/docker.sock --privileged=true portainer/portainer
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/portainer
访问外网8088测试:http://192.168.200.169:8088/
总结
本篇笔记是基于B站up主:遇见狂神说的笔记进行学习,感兴趣的可以去B站进行学习。网站地址:https://space.bilibili.com/95256449,以上就是今天要讲的内容,本文仅仅通过简单Docker练习
来巩固之前所学的常用指令。好了今天的内容就到这里了,下一篇再见