Docker学习

Docker学习

一、出现的原因

在代码写好了之后,交给运维可是其他的电脑却无法正常工作,有环境和配置的差异,Docker的出现就可以将环境配置打包发给运维,阻止出现代码换环境就不能运行的情况。实现一次封装,到处运行的理念。缩小版,精简版的的Linux虚拟机环境。

二、作用

1、比linux的步骤少、 冗余少‘

2、容器虚拟化的技术,装相关的代码环境和技术;

3、减少运维的操作难度;

三、镜像\容器

举例:

1)王者所有铭文(仓库)->配置一套铭文(镜像)->使用的英雄(容器)
2)Person p1 =new Person()
Person p2 =new Person()
Person p3 =new Person()
实例化的时候,p1,p2,p3就相当于三个容器, Person类就相当于一个镜像。

镜像(image):一系列打包环境与配置的组成,实实在在保存在硬盘里的文件

容器(docker):使用镜像创建容器实例,一个容器运行服务的时候,就需要通过docker客户端创建一个对应的运行实例,也就是我们的容器。(镜像运行起来的样子),可以将容器看成简易版的Linux环境,每个容器都是隔离的,一个容器运行一个服务(装APP的地方)。

仓库:保存镜像的地方,仓库注册服务器很多仓库,一个仓库很多镜像,一个镜像可以创造实例很多的容器

四、docker和虚拟机的区别

在这里插入图片描述
虚拟机在中间的配置有一个Hypervisor层,可以装相关的系统,在此基础上进行app和软件的安装,但是在docker中,没有相关系统的支撑,直接通过相关的内核与app交互,启动app的时候不需要虚拟的操作系统启动,容器是秒级,虚拟机是分钟级

五、Docker操作

、Docker启动/关闭相关命令

systemctl start docker      //Docker启动命令
systemctl status docker     //Docker状态命令
docker info                 //查询Docker对应的信息
docker --help              //查询docker相应的操作文档
systemctl enable docker    //设置开机后重启
service docker restart     //重启docker服务

六、镜像相关命令

docker images   //查看镜像
REPOSITORY    TAG       IMAGE ID   CREATED   SIZE
仓库源		  标签		 镜像id     创建时间   大小

docker search 镜像名字   //搜索镜像
docker pull 镜像名字  //拉取镜像
(分层下载), 后面可以【:tag】加上版本号,不然是最新的版本

eg:docker pull centos:7  //拉取centos7版本的镜像信息

docker rmi 镜像ID   //根据镜像ID来删除镜像
docker rmi `docker image -q`   //删除所有的镜像
docker commit -m="描述信息" -a="作者" 容器id 目标镜像名字, [tag]

七、容器相关的命令

docker ps    #查看正在运行的容器  -a显示容器(不管是运行还是不运行的容器)
docker run   #创建容器命令 -i 表示运行容器  -t表示容器启动并且进入命令  
             #--name 为创建的容器命名
             #-v 表示目录的映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上
             #-d 创建一个守护式的容器在后台运行,这样创建后不会自动登录容器
             #-p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口,可以使用多个-p做多个端口映射 8080:8080
             #-e, --env list       设置env   
             
docker stop ID停止容器
docker start id
docker kill id 
docker restart
docker rm -f id 删除容器

docker top 容器id 查看容器中进程信息;
docker inspect 容器id 查看容器的详细信息

docker attach 容器id 进入容器容器进行一些操作
docker exec -it 容器id 类似上面,打开新的终端

docker cp 容器id:path 本机路径(将docker中的文件拷贝到主机)

在这里插入图片描述
在这里插入图片描述
提交镜像

docker commit -m="提交信息" -a="作者" 容器id 目标镜像名

发布镜像到docker

docker login
docker push

八、容器数据卷
在这里插入图片描述
具名下载和匿名挂载,可以在-v不指定名字

docker volume  查看卷信息

在这里插入图片描述在这里插入图片描述
容器继承
在这里插入图片描述

十、Dockerfile

Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像,例子:比如拉取一个centos镜像(基础镜像),在此基础上安装jdk,go等相关环境重新生成的镜像(可以使用镜像创建容器,然后在容器中安装相关环境,然后将容器生成镜像,但是比较麻烦,所以使用相关的脚本来进行安装)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
发布镜像

docker login
docker push

如果看文这篇文章对自己有所帮助,请点赞支持,谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值