docker上部署应用
1、搜索镜像 docker search nginx 建议上官网搜索具体版本下载
2、下载镜像 docker pull nginx
3、运行测试
# 流程
[root@kuangshen home]# 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
[root@kuangshen home]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 4 months ago 141MB
centos latest 5d0da3dc9764 7 months ago 231MB
# -d 后台运行
# --name 给容器命名
# -p 宿主机端口,容器内部端口
[root@kuangshen home]# docker run -d --name nginx01 -p 3344:80 nginx
0dbf3d55855076fbd274764d804238d34f72e6380692aa560d31111a1ac526b6
[root@kuangshen home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0dbf3d558550 nginx "/docker-entrypoint.…" 10 seconds ago Up 9 seconds 0.0.0.0:3344->80/tcp, :::3344->80/tcp nginx01
[root@kuangshen home]# curl localhost:3344
<!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@kuangshen home]# docker exec -it nginx01 /bin/bash
root@0dbf3d558550:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@0dbf3d558550:/# cd /etc/nginx
root@0dbf3d558550:/etc/nginx# ls
conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
root@0dbf3d558550:/etc/nginx#
端口暴露的概念
# 官方的使用
docker run -it --rm tomcat:9.0
# 我们之前的启动都是后台,停止了容器之后,容器还是可以查到
# docker run -it --rm 一般用来测试,用完即删
# 下载再启动
docker pull tomcat
# 启动运行
[root@kuangshen home]# docker run -d -p 3355:8080 --name tomcat01 tomcat
# 测试访问没有问题
# 进入容器
[root@kuangshen home]# docker exec -it tomcat01 /bin/bash
# 发现问题:1、linux命令少了, 2、没有webapps。 阿里云镜像的原因,默认是最小的镜像,所有不必要的都剔除掉
# 保证最小可运行的环境!
# 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 的状态
# 查看 docker stats
# 测试一下es是否成功了
[root@kuangshen ~]# curl localhost:9200
{
"name" : "13bf3491fc38",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "ITQFoOchS_mr0CfFEh-jBA",
"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"
}
# 赶紧关闭,增加内存的限制
# 赶紧关闭,增加内存的限制 . 修改配置文件 -e 环境配置修改
docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2
# 查看 docker stats
[root@kuangshen ~]# curl localhost:9200
{
"name" : "b49b797cc859",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "wm-1lL7XRhu3KHrmIKO9qQ",
"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 ? 思考网络如何才能连接过去!
可视化
- 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