首页
关于
友链
Search
1
wlop 4K 壁纸 4k8k 动态 壁纸
1,472 阅读
2
Nacos持久化MySQL问题-解决方案
933 阅读
3
Docker搭建Typecho博客
752 阅读
4
滑动时间窗口算法
729 阅读
5
Nginx反向代理微服务配置
699 阅读
生活
解决方案
JAVA基础
JVM
多线程
开源框架
数据库
前端
分布式
框架整合
中间件
容器部署
设计模式
数据结构与算法
安全
开发工具
百度网盘
天翼网盘
阿里网盘
登录
Search
标签搜索
java
javase
docker
java8
springboot
thread
spring
分布式
mysql
锁
linux
redis
源码
typecho
centos
git
map
RabbitMQ
lambda
stream
少年
累计撰写
189
篇文章
累计收到
24
条评论
首页
栏目
生活
解决方案
JAVA基础
JVM
多线程
开源框架
数据库
前端
分布式
框架整合
中间件
容器部署
设计模式
数据结构与算法
安全
开发工具
百度网盘
天翼网盘
阿里网盘
页面
关于
友链
搜索到
1
篇与
的结果
2023-03-14
docker入门
容器:一种打包技术。docker:打包技术的一种技术实现。一、基础知识基础命令查看docker相关信息docker versoin查看docker环境信息docker info查看命令帮助docker --helpimage镜像image是一个只读文件,里面包含文件系统、源码、可文件、依赖、工具等一些运行application所需的文件,可以理解成一个模板。docker image具有分层的概念。container容器一个运行中的“docker image”。是指是复制image并在image最上层加上一层读写的层。基于同一个image可以创建多个container。image获取方式1、自己制作2、从registry拉取,比如docker hub创建容器查看容器帮助命令docker container --help当没有拉取镜像时,会自动拉取。查看当前运行了那些容器:docker container lsid:唯一的id。image:使用的镜像。command:执行的命令created:创建时间,这里是2分钟之前。status:状态ports:端口协议names: 容器名称,不设置时,随机产生一个。创建容器:docker container run 镜像命令例如:创建nginx容器dockekr container run nginx注意:此时是在窗口运行,ctrl+c会停止运行容器。关闭容器docker stop 容器名称或者容器id例如:关闭nginx查看容器信息:docker container list关闭容器:docker container 7b51查看容器查看运行中的容器docker container list查看创建过或者使用过的容器docker container ps -a 或者 docker container ls -a区别:ps是早点docker里面使用的参数,docker container --help里面看不到,只看得见list的参数。删除容器docker container rm 容器命令或者id例如:删除nginx容器docker container rm 7b注意大部分的命令container是可以省略的。例如:创建容器: docker run nginx 查看容器: docker ps -a 停止容器: docker stop nginx 删除容器: docker rm nginx建议,还是带上container,清晰表示是在对容器操作,因为后面还有对镜像image的操作。二、小技巧批量操作比如:批量删除容器,如何操作?正常情况删除容器1、查看所有容器docker container ls -a2、删除多个容器docker container rm 容器1的ID 容器2的ID 容器3的ID 容器4的ID同时删除容器1、2、3、4。但是如果有很多个,就可以通过参数传递批量删除。批量删除1、查看所有容器iddocker container ls -aq2、参数传递批量删除docker container rm $(docker container ls -aq)批量关闭、删除同理。注意不能删除正在运行的容器。删除运行中的容器查看运行中的容器docker container li直接删除会提示容器正在运行不能删除。docker container rm nginx删除运行中容器1、停止容器,再删除。停止 docker container stop 681 再删除 docker container rm 6812、强制删除容器docker container rm c3e -f注意:强制删除多个一个参数 -f三、docker两种运行模式attached前台运行模式docker container run -p 80:80 nginxctrl+c在窗口创建容器后,界面输入创建容器日志,此时ctrl+c关闭后容器就关闭了。查看容器docker psdetached后台运行模式只需要添加参数detached,简写一个d即可。docker container run -d -p 80:80 nginx此时查看容器,依然在后台运行docker ps进入容器只需要加attach参数即可docker container attach其实此时已经进入容器,访问nginx页面刷新,就可看到页面输出日志。此时执行ctrl+c,就会关闭容器。ctrl+c查看容器已经关闭docker ps注意:不推荐attach前台模式。查看日志后台运行模式detached,查看日志。docker container logs 容器id或名称例如查看nginx日志docker container logs nginx动态跟踪日志只需要加参数-fdocker container logs -f 容器id或名称例如:动态跟踪nginx日志docker container logs -f nginx交互式模式1、用于执行创建容器后,执行的命令。只需要加参数-itdocker container run -it 容器名称 容器中要执行的命令例如:创建ubunt容器后,执行sh脚本docker container run -it ubuntu sh此时已经进入ubuntu的sh模式了,可以直接执行命令,查看ubuntu相关信息了。执行exit后执行退出ubuntu,并关闭了。因为我们是在交互模式,容器中执行的exit相当于关闭容器了。另一种进入交互模式办法。2、exec经常使用的容器交互方式docker exec -it 容器名称/容器id sh这样就进入了交互模式。例如,进入nginx容器里面,执行相关操作。docker exec -it nginx sh里面执行exit退出的是nginx的sh,并没有关闭nginx容器。这就是和上面没有exec参数的不同。注意:这是使用最频繁的命令。四、容器运行了那些进程docker top 容器名称/容器id可通过安装pstree查看进程关系树。可以看到创建一个docker容器,实际就是运行了一个脚本,而容器中又运行了其他进程子进程。注意:容器中进程id和实际看到的id是不同的。比如:创建busybox容器,进入容器内查看进程id。docker container run -it busybox sh查看进程ps在容器外部执行查看容器进程命令:docker container top fe0可以看到容器内部查看到的sh脚本进程和容器外部看到的sh脚本进程是不同的。这是由于docker容器隔离形成。五、docker容器运行背后发生了什么以创建nginx容器为列:docker container run -d -p 80:80 --name mynginx nginx说明:在本地查找是否有nginx镜像。如果有镜像,直接执行第4步骤。如果本地没有,去远程image registry查找nginx镜像(默认registry是Docker Hub)下载最新版本nginx镜像(默认nginx:latest)基于nginx镜像来创建一个新的容器,并准备运行。docker engine引擎给这个容器分配一个虚拟ip地址。在宿主机上打开80端口,并把容器的80端口转发到宿主机的80端口上。启动容器,运行指定命令。(启动容器,其实就是执行一个脚本启动nginx)。
2023年03月14日
127 阅读
0 评论
2 点赞