docker笔记

为什么要使用docker?

我在我的电脑上可以运行,软件升级报错
环境配置十分麻烦,我每一台机器都要部署运行环境,费时费力
发布一个项目,war,jar包,需要mysql。redis,jdk,es,hadoop的环境(不是夸平台的),docker带环境发布
开发打包部署上线
docker给以上问题给出了解决方案
docker jar环境 项目打包带上环境(镜像) 服务器上运行

docker核心思想:隔离  打包装箱 每个箱子是相互隔离的
dockerhub
虚拟机和docker的不同,传统虚拟机模拟完整的操作系统,然后再系统上安装软件
docker:直接运行在宿主机上,容器没有自己的内核,
一个物理机上可以运行很多容器实例
开始运行
docker run  1在本机寻找镜像,1有,使用镜像运行 ,2没,去docker hub下载  2,判断仓库是否可以找到1找到  下载 2,找不到 ,报错,找不到镜像
docker是怎么工作的
是cs的结构,docker的守护进程运行在主机上,通过socket从客户端访问
docker用的是虚拟机的内核,

镜像命令
docker images


容器命令


docker run -d 启动   容器使用后台运行,必须要有一个前台进程相匹配,否则启动容器会自动退出   ctrl+p+q快捷键退出容器,容器继续后台运行  exit退出容器,后台不运行

进去当前正在运行的容器
#进入容器修改一些配置
docker exec -it 容器id 

docker attach -it 容器id
两者的区别:1.开启一个新的终端,进入正在执行的终端

从容器copy到主机

docker cp 退出容器到主机上拷贝容器中的数据到主机中。

练习  docker安装nginx

1,dockerhub搜索nginx :https://registry.hub.docker.com/,搜索nginx,进入版本列表

1.搜索nginx: docker search nginx 

2.运行nginx:docker run nginx

3.查找本机镜像文件:docker images

4.启动镜像:docker run -d --name nginx01 -p:8888:80 nginx  //-d后台运行 --name 名字 -p端口(本地主机端口:容器端口)

5.查看运行的容器:docker ps

6.访问nginx容器:curl localhost:8888 (阿里云:注意安全组要加上8888端口配置,端口暴露概念)

运行结果:

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    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>

7.进入容器: docker exec -it nginx01 /bin/bash

每次改动nginx配置文件都非常的麻烦,是否可以在容器外部修改文件,容器内部自动修改(数据卷)

练习2:使用docker安装tomcat

1.搜索tomcat镜像:docker search tomcat

2.下载tomcat镜像:docker pull tomcat

3.查看本机镜像列表:docker images

4.运行tomcat镜像:docker run -d --name tomcat01 -p:8888:8080 tomcat//-d后台运行 --name 名字 -p端口(本地主机端口:容器端口)

5.查看本地主机运行的容器列表:docker ps

6.访问容器出现404页面(可以访问,没有页面,镜像为阉割版)

7.进入容器: docker exec -it tomcat01 /bin/bash  ,进入容器发现问题,linux命令少了,tomcat webapps文件少了,阿里云镜像,默认是最少的镜像,所有不必要的都剔除了。cp -r webapps.dist/* webapps 需要拷贝webapp.dist目录下的文件到webapps目录。刷新网站就可以访问到页面。

以后每次部署项目都要进入容器非常麻烦,是否可以提供一个映射路径,自动同步到容器?

练习3,部署es+kibana

1.es暴露的端口很多,十分的耗内存,数据一般需要放置到安全目录(大约要占1.3G内存)

2.启动elasticsearch:docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.5.2

3.启动本地主机非常卡,docker stats查看cpu状态

4.测试 crul localhost:9200

5.停止容器 docker stop 容器id

6.重新启动容器带内存参数:docker run -d --name elasticsearch  -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node"  -e ES_JAVA_OPTS="-Xms64m -Xmx512m"  elasticsearch:7.12.1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值