# 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
#命令
docker -exec -it 容器id bashShell
#方式二
docker attach 容器id
正在执行当前的代码
#docker exec 进入容器后开启一个新的终端,可以在里面操作
#docker attach 进入容器正在执行的终端,不会启动新的进程!
容器中相当于一个小的虚拟机,主机相当于一个大的虚拟机
docker cp 容器id:容器内路径 目的地主机路径
docker cu 容器id:/home/cxk.java /home 复制到了主机home目录
#拷贝是一个手动过程,未来我们使用 -v卷的技术,可以实现
docker 安装linux
1.搜索镜像 search nginx 建议去docker搜索,可以看到帮助文档
2.下载镜像 pull
3.运行测试
端口暴露的概念:其实就是通过外网端口3344 访问内网中容器80端口
练习二:docker 来装一个tomcat
# 官方的使用
docker run -it --rm tomcat:9.0
#我们之前的启动都是后台,停止了容器之后,容器还是可以查到
docker run -it --rm 一般用来测试,用完及删除
#下载在启动
docker pull tomcat
#启动运行
docker run -d -p 3355:8080 --name tomcat01 tomcat -
-d以后台方式 运行 -p暴露端口
进入容器
docker exec -it tomcat01 /bin/bash
发现问题, linux命令少了 没有webapps 阿里云镜像的原因,默认是最小的镜像,所有不必要的都剔除掉
作业:部署es+kibana
es 暴露的端口很多
es 十分的耗内存
es 的数据一般需要防止到安全目录!挂载
# --net somenetwork ? 网络配置,以后会讲
#启动
docker run -d --name elasticsearch -p 9200:9200 -p9300:9300 -e"discovery.type=single-node" elasticsearch:7.6.2
#启动了 linux就很卡 docker stats 查看 cpu的状态
es是十分耗内存的
测试一下es是否成功了(查看暴露的端口)
docker stats果然消耗内存
ctrl+c退出
赶紧关闭,增加内存的限制,修改配置文件 -e环境配置修改
docker run -d --name elasticsearch -p 9200:9200 -p9300:9300 -e"discovery.type=single-node" -e Es_JAVA_OPTS="-Xms64m -Xmx512m"elasticsearch:7.6.2
使用kibana链接es? 思考网络如何才能链接过去
可视化
Docker图形化界面管理工具!提供一个后台面板供我们操作
docker run -d -p 8080:9000 \ --restart=always -v /var/run/docker.sock://var/run/docker.sock --privileged=true portainer/portainer
然后访问网址进行一个可视化面板操作
镜像是一种 轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。
所有的应用,直接打包docker镜像,就可以直接跑起来!
从远程仓库下载
朋友拷贝给你
自己制作一个镜像DockerFile
unionFs (联合文件系统)是一种分层、轻量级并且高性能的文件系统,支持修改一次提交来一层层叠加。
也就是如果 底层需要下载centos而已经下载过了,就可以直接用里面的
特点
docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部!
这一层就是我们通常说的容器曾,容器之下的都叫镜像层!
如何提交一个自己的镜像
commit镜像
docker commit 提交容器成为一个新的副本
# 命令和git原理累死
docker commit -m="提交的描述信息" -a ="作者" 容器id 目标镜像名[TAG]
呃呃呃实战自己做dockerfile镜像,有个地方卡住了,太困了明天继续
我是因为 8080端口换成3344就可以了
docker run -it -p 8080:8080 tomcat 交互 暴露端口
继续
实战测试
#1.启动一个默认的tomcat
#2.发现这个默认的tomcat 是没有webapps应用,镜像的原因,官方的镜像默认webapps下面是没有文件的!
#3.是我自己拷贝进去了基本的文件
#4.将我们操作过的容器通过commit提交为一个镜像!这就是我们自己修改的镜像
如果你想要保存当前容器的状态,就可以通过commit来提交,获得一个镜像
就好比我们以前学习vm种的快照
加油!