PS:本人还在学习摸索中,有不对的欢迎大佬指教
docker应用
容器镜像简介
镜像也是docker的核心组件之一,镜像是容器运行的基础,容器是镜像运行后的形态;可以理解为镜像是容器的模板。总体来说,镜像是一个包含程序运行必要环境和代码的只读文件,它采用分层的文件系统,将每一层的改变以读写层的形式增加到原来的只读文件上。
镜像的体系结构
镜像的最底层是一个启动文件系统(bootfs)镜像,bootfs的上层镜像叫做根镜像,一般来说,根镜像是一个
操作系统,例如Ubuntu、CentOS等,用户的镜像必须构建于根镜像之上,在根镜像之上,用户可以构建出各
种各样的其他镜像。
启动一个docker容器
docker run --name nginx -itd -p 80:80 nginx --命令解释参考下文的docker常用命令
浏览器访问 http://192.168.138.129 (地址视自己情况而定)
docker exec -it nginx bash --查看容器内部命令
docker常用命令
- 查看当前运行容器
docker ps - 查看所有容器
docker ps -a
属性解释
CONTAINER ID 容器id
IMAGE 使用镜像
COMMAND 最后运行命令
CREATED 创建时间
STATUS 状态
PORTS 对外开发端口
NAMES 名称
-
删除容器(如果容器在运行中,需要先stop容器; 使用-f可以强制删除,不需要stop)
docker rm 容器id或名称
docker rmi 镜像名称或id (删除镜像要先删除容器) -
批量删除 (docker ps -a -q会列出所有容器id)
docker rm $(docker ps -a -q) -
创建容器(基于nginx镜像创建)
docker create --name=nginx nginx -
启动容器
docker start 容器id或名称 -
关闭容器
docker stop 容器id或名称 -
创建+启动一般使用(本地没有镜像时会去dockerHub下载镜像)
docker run --name nginx -itd -p 80:80 nginx
参数解释
--name 指定名称
-i 容器的标准输入
-t 表示告诉docker,为容器创建一个?命令行终端
-d 后台运行
-p 指定端口 第一个为宿主机端口;第二个为容器端口
最后的nginx表示基于nginx镜像
-
查看容器信息
docker inspect 容器id或名称 -
容器内执行命令
docker attach(用户从终端退出,容器会停止运行;不建议使用)
docker exec -it 容器id或名称 bash -
查看容器内进程信息
docker top 容器id或名称 -
查看容器日志
docker logs -f --tail=10 -t 容器id或名称
参数解释
-f 查看实时信息
--tail 输出行数
-t 日期信息
- 查看镜像
docker images
参数解释
REPOSITORY 仓库名称
TAG 版本信息
IMAGE ID 镜像id
CREATED 创建时间
SIZE 镜像大小
仓库名称 有几种不同的命名方式
如:nginx 这种只有仓库名,对于这种没有命名空间的仓库名,可以认为其属于顶级命名空间,该空间的仓库只用于官方的镜像,由Docker官方进行管理,但一般会授权给第三方进行开发维护。
如:eos2009/nginx 这种仓库名称由命名空间和实际的仓库名组成,中间通过\隔开。当开发者在Docker Hub上创建一个用户时,用户名就是默认的命名空间,这个命令空间是用来区分Docker Hub上注册的不同用户或者组织(类似于GitHub上用户名的作用),如果读者想将自己的?镜像上传到DockerHub上供别人使用,则必须指定命名空间。