欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker入门二

程序员文章站 2022-06-03 11:37:14
...

什么是Docker

Build once,Run anywhere
Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runC 和 containerd。

简单地讲,读者可以将 Docker 容器理解为一种轻量级的沙盒( sandbox 每个容器内
运行着 个应用,不同的容器相互隔离,容器之间也可以通过网络互相通信 容器的创建和
停止十分快速,几乎跟创建和终止原生应用 致;另外,容器自身对系统资源的额外需求
6 •!• 第一部分基础入门
也十分有限,远远低于传统虚拟机 很多时候,甚至直接把容器当作应用本身也没有任何
问题

传统虚拟机和Docker不同之处

下面的图片比较了 Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
Docker入门二
Docker入门二

核心概念

1. Docker 镜像

Docker 镜像类似于虚拟机镜像,可以将它理解为一个只读的模板
例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了 Apache 应用程序(或
用户需要的其他软件) 可以把它称为一个 Apache 镜像
镜像是创建 Docker 容器的基础
通过版本管理和增量的文件系统, Docker 提供了一套十分简单的机制来创建和更新现有
的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并直接使用

2. Docker 容器

Docker 容器类似于一个轻 级的沙箱, Docker 利用容器来运行和隔离应用
容器是从镜像创建的应用运行实例 它可以启动、开始、停止 删除,而这些容器都是
彼此相互隔离、互不可见的
可以把容器看作一个简易版的 Linux 系统环境(包括 root 用户权限、进程空间、用户空
间和网络空间等)以及运行在其中的应用程序打包而成的盒子

注意:镜像自身是只读的 容器从镜像启动的时候,会在镜像的最上层创建一个可写层

3. Docker 仓库

Docker 仓库类似于代码仓库,是 Docker 集中存放镜像文件的场所。

docker下载并配置加速

查看我之前的docker入门一

镜像常用命令

1. 镜像查看和清除

#查看镜像
    docker images或docker image ls
#使用inspect命令查看详细信息
    docker [image) inspect ubuntu:18.04
#使用 hi吐ory 命令查看镜像历史
    docker his七ory ubuntu: 18. 04
# 删除和清理镜像
    docker rmi 或 docker image rm
#    支持选项包括:
    D -f, -force: 强制删除镜像, 即使有容器依赖它;
    D -no-prune: 不要清理未带标签的父镜像。
#清理镜像
    没有被使用的镜像, 可以通过docker image prune命令来进行清理
    支待选项包括:
    D -a, -all: 删除所有无用镜像, 不光是临时镜像;
    D -fil七er fil七er: 只清理符合给定过滤器的镜像;
    D -f, -force: 强制删除镜像, 而不进行提示确认

2. 上传镜像

#1. 存出镜像
    $ docker save -o ubuntu 18 04 tar ubuntu:18 .04
#2. 载入镜像
    $ docker load -i ubuntu_ 18 04 tar 或者
    $ docker load < ubuntu_18 04 tar
#上传镜像
    $ docker tag test:latest user/test : latest
    docker push user/test:latest
    The push refers to a repository [docker.io/user/test]
    Sending image list
    Please login prior to push:
    Username :
    Password:
    Email :

容器常用命令

用 docker container help 令查看 Docker 支持的容器操作子命令

Docker入门二

操作docker容器

#1. 新建容器
    docker create -it ubuntu:latest
#2. 启动容器
    docker start af
#2. 重启容器
    docker restart af
 #查看窑器输出 
     docker logs ce554267d7a4
     该命令支持的选项包括:
        口- details 打印详细信息;
        口- f, follo :持续保持输出;
        口一 since string :输出从某个时间开始的日志;
        口- tail string 输出最近的若干日志;
        口- t, timestamps 显示时间戳信息
        口-until string 输出某个时间之前的日志
# 暂停容器
    docker pause test
# 终止窑器 
    docker stop ce5
# 清除所有处于停止状态的容器
    docker container prune
# 进入容器
    docker exec -it 24 3c32535da7
    容器中查看容器中的用户和进程信息 1.w 2.ps -ef
# 删除容器
    docker [container) rm [-f][-1][-v] CONTAINER
    主要支持的选项包括
    口- f, --force=false 是否强行终止并删除一个运行中的容器
    口- 1, --link=false :删除容器的连接 ,但保留容器;
    口- v, --volumes=false :删除容器挂载的数据卷 

查看容器

# 查看本机所有容器
	docker ps -a
# 查看容器详情
    docker container inspect test
    查看某容器的具体信息,会以 json 格式返回包括容器 Id 创建时间、路径、状
    态、镜像、配置等在内的各项信息
# 查看窑器内进程
    docker top test
# 查看统计信息
     docker [container] stats [OPTIONS] [CONTAINER ... ]
     子命令,会显示 CPU 、内存、存储、网络等使用情况的统计信息
# 查看端口映射
    docker container port test