docker基础知识

Docker 是一个能够把开发应用程序自动部署到容器的开源引擎。Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术,它提供了一个简单、轻量的建模方式,使开发生命周期更高效快速,鼓励了面向服务的架构设计。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。:

Docker 容器本质上是宿主机上的一个进程。Docker 通过 namespace 实现了资源隔离,通过 cgroups 实现了资源的限制,通过写时复制机制(copy-on-write)实现了高效的文件操作。
Docker有五个命名空间:进程、网络、挂载、宿主和共享内存,为了隔离有问题的应用,Docker运用Namespace将进程隔离,为进程或进程组创建已隔离的运行空间,为进程提供不同的命名空间视图。这样,每一个隔离出来的进程组,对外就表现为一个container(容器)。需要注意的是,Docker让用户误以为自己占据了全部资源,但这并不是”虚拟机”。

安装

DockerHub可以注册账号
docker可以在运行在window、mac、linux平台,并都有自己的客户端进行管理。注意要配置国内镜像加速

{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

文档

docker官网文档写的很详细,还有Docker菜鸟教程
play with docker是一个在线学习使用docker的网页,每次可以免费使用4个小时,在里面可以尽情尝试使用docker的命令。
在这里插入图片描述

docker术语

在这里插入图片描述

1.镜像(image):Docker 镜像就是一个只读的模板,镜像可以用来创建 Docker 容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
镜像是一种文件结构。Dockerfile中的每条命令都会在文件系统中创建一个新的层次结构,文件系统在这些层次上构建起来,镜像就构建于这些联合的文件系统之上。Docker官方网站DockerHub专门存储所有可用的镜像。

2.容器( Container):容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境,Docker 利用容器来运行应用。镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

3.仓库:仓库是集中存放镜像文件的场所,仓库注册服务器(Registry)上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。目前最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。Docker仓库用来保存我们的images,当我们创建了自己的image之后我们就可以使用push命令将它上传到公有或者私有仓库,这样下次要在另外一台机器上使用这个image时候,只需要从仓库上pull下来就可以了。Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务。
4. tar文件

docker常用命令

docker version 版本信息
docker info 查看docker安装信息
docker stats 查看cpu 内存占用信息

  • 镜像操作:
    docker search -s 10 java 查找点赞数大于10 的java镜像
    docker pull nginx:latest 下载nginx最新版本的镜像
    docker images 查看当前所有的镜像
    docker rmi 删除本地一个或多个镜像 ,注意如果有基于这个镜像的容器,必须先删除这个容器
    docker history 查看dockerfile构建信息

    docker commit dockerID my_nginx 将一个容器打包成镜像

    可以通过save、load的方式从同事那里拷贝镜像
    docker save -o /usr/share/my_ubuntu_v3.tar runoob/ubuntu:v3 将指定镜像保存成 tar 归档文件, -o指定保存的地方和文件名
    docker load -i my_ubuntu_v3.tar 导入使用 docker save命令导出的镜像,(都会加载到docker指定的地方,不用关心加载到那里)
    也可以使用export、import导出导出,导入和导出镜像


  • 容器操作:
    docker run -d -p 80:80 --name my_nginx -v /home/docker-nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/docker-nginx/log:/var/log/nginx dockerID 指定端口和名字,使用宿主机上的配置文件,后台 运行docker。还可以加上--rm,即当容器停止后,自动删除这个容器,运维工作经验推荐。

    docker ps 查看当前正在运行的docker容器, -a列出所有状态的容器,已经停止的容器可以start ,restart,pause ,unpause ,create
    docker stop dockerID 停止一个运行的容器
    docker container prune docker新出的命令,快速删除所有已经退出的容器,

    docker port dockerID 查看容器的端口映射
    docker logs -f dockerID 查看容器内部的标准输出
    docker top dockerID 查看容器内部运行的进程
    docker inspect dockerID 查看容器的底层信息,挺有用的

    docker exec -it dockerID /bin/bash 进入docker容器内部 ,exit退出容器
    docker exec -ti -u root 4650e8d1bcca bash root用户进入


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值