Docker1——原理和基础命令

类似集装箱的机制,可以将应用以及依赖包打包到一个容器中,然后发布到任何流行的Linux机器上,实现虚拟化
Docker容器是完全使用沙箱机制,相互之间不会有任何接口,几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言,框架或系统。
在这里插入图片描述
在这里插入图片描述
可以看到
1.Docker有比虚拟机更少的抽象层
2.docker利用的是宿主机的内核,而虚拟机需要Guest OS
所以,当新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统的内核。虚拟机需要加载Guest OS,这个过程是分钟级别的,而docker是利用宿主机的操作系统(Host OS),省略了重新加载内核的开销,秒级!

在window上面安装Docker的话,会给出一个教程,讲述docker运行过程

1.clone
在这里插入图片描述

docker run --name repo alpine/git clone http://github.com/docker/getting-strated.git
###啥意思?
docker cp repo:/git/getting-strated/ .
### 

2.build
在这里插入图片描述

cd getting-started
###打开这个目录
docker build -t docker101tutorial .
###用这个目录下的 Dockerfile 构建出一个镜像?应该是的

这个目录下面有这些东西
在这里插入图片描述
3.run
在这里插入图片描述

docker run -d -p 80:80 --name docker-tutorial docker101tutorial
### 使用当前目录的Dockerfile创建镜像  标签为runoob/ubuntu:v1
### docker build -t runoob/ubuntu:v1 . 

run之后的流程:

在这里插入图片描述

4.share
在这里插入图片描述

docker tag docker101tutorial pkapkaever/docker101tutorial
### 标记为这个 docker101tutorial
docker push pkapkaever/docker101tutorial
### 推送到我的 dockerhub中

Docker的常用命令

docker version
#查看dicker版本信息
docker info
#查看docker系统信息,包括镜像和容器的数量
docker [命令] --help
#帮助命令

可以看到docker info之后,显示了服务器的信息 容器输了和镜像(image)数量以及他们的运行情况
在这里插入图片描述可以查询docker文档

镜像命令

docker images
#查看所有镜像

在这里插入图片描述
因为我下载的是window Desktop Docker,有图形界面直接可以点击image
在这里插入图片描述可以看到里面有三个镜像(可以理解为 不同的镜像 image(环境版本)相当于一个class类,而容器 container 相当于实例化了的一个对象
那么这些镜像从哪里来的呢?
就是从DockerHub中,DockerHub相当于一个商店
在这里插入图片描述我们可以在DockerHub搜索这些镜像,比如ubuntu
也可以用命令行去搜索 !(window用户可以直接在cmd里面使用docker命令!超级方便!)

docker search ubuntu
#相当于在DockerHub上搜索ubuntu

在这里插入图片描述

docker pull ubuntu#后面是镜像名称哈
#下载镜像 默认最新版

在这里插入图片描述在下载镜像的时候可以看到,docker是分层下载的,在下载mysql5.7时,由于之前下载mysql latest版本,已经下载过一些层了。所以有Already exists。这些镜像下载过的层可以共用,极大节省了内存!

docker rmi -f ${IMAGE ID}
#删除指定的镜像

在window下,这个很好操作
在这里插入图片描述
直接按小垃圾桶删除就行

docker rmi -f $(docker images -aq)
#可以递归删除(将查询到的images 的ID作为参数传入)

在这里插入图片描述
容器命令

说明:有了镜像才能创建容器。

docker pull centos
#使用docker来拉取centos镜像

新建容器并启动

docker run [可选参数] image

#参数说明
--name="Name" 容器名称
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器端口 -p 8080:8080
		-p 主机端口:容器端口  (常用的)
		-p 容器端口
		容器端口
#测试,启动并进入容器
docker run -it centos /bin/bash
#容器内就是自己的一个环境
exit
#退出容器

列出所有运行的容器

docker ps

在这里插入图片描述

退出容器
在这里插入图片描述
删除容器
在这里插入图片描述启动和停止容器的操作
在这里插入图片描述
常用的其他命令
在这里插入图片描述
在这里插入图片描述在这里插入图片描述查看镜像的元数据

docker inspect 容器ID

进入当前正在运行的容器

在这里插入图片描述将文件内容拷贝到主机上
因为容器是不互通的
所以如果希望将容器内的东西拷贝到主机上可以使用`

docker cp 容器id:文件目录 主机目标目录

在这里插入图片描述利用数据卷 可以实现容器与主机同步
小结
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值