首页 > 编程知识 正文

docker的原理,docker基础知识

时间:2023-05-06 21:17:17 阅读:271899 作者:3957

本文包括:

Docker 简单概念如何安装(centos7)container和image操作命令Dockfile 简单实用dockerHub 简单使用 Docker简单概念 Docker 为C/S 架构模式,使用远程API管理和创建容器。使用docker前, 必须确保有启动状态的docker-daemon作为服务端 和 docker 命令作为客户端。docker client 发送请求,docker-daemon拉取所需镜像,创建容器。容器必须通过运行镜像启动镜像是一个可执行包,包含运行所需要的一切代码、运行时、环境变量和配置文件。
我们可将镜像理解成一个或多个可执行的层(一般为多个),这个层是可读的。在可读层上添加一个读写层,即形成容器。再为容器分配一个独立的进程空间,即形成运行态容器。 安装

清理旧版本

sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

设置docker存储库,后期通过存储库安装和更新

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装

//默认最新版本$ sudo yum install docker-ce//指定版本$ yum list docker-ce --showduplicates | sort -r$ sudo yum install docker-ce-<VERSION STRING>

启动

sudo systemctl start docker container 操作 commandactcreate为镜像添加可读写层,构成一个未运行的容器start为上面没有运行的容器添加一个进程隔离空间,即启动容器runcreate + startstop向容器主进程发送SIGTREM信号,给容器收尾时间,然后发送SIGKILL强行终止进程kill给docker中的所有进程发送SIGKILL信号pause利用cgroup特性将运行中的容器进程空间暂停,发送SIGTSTP信号rm移除镜像的可读写层,仅对非运行态容器有效logs查看容器日志 -f <containerID>ps陈列容器信息 -a查看所有状态的容器 -q仅显示containerIDexec通过宿主机在容器中执行一个新进程inspect提取容器或镜像的元数据 docker inspect containerId(或imageId)重要 stats实时监测宿主机的容器资源使用情况,在docker里,free等命令监测的是宿主机资源image操作 commandactimages列出所有顶层镜像,即创建容器时使用的镜像 golang为基础创建一个新的镜像后,images仅显示新镜像,查看所有镜像层使用-acommit将容器的可读写层转换为只读层,形成一个顶层镜像rmi移除构成镜像的只读层,并且只能移除顶层。也可使用-f参数移除中间的层save将image归档到文件 docker save imageName > /home/image.tarload加载到本地 docker load < /home/image.tartag重新标记镜像 docker tag oldImageName newImageNamehistory递归输出镜像的历史镜像简单的Dockerfile使用

docker会通过Dockerfile的指令来一步步创建容器

# 使用centos7基础镜像FROM centos:7.2.1511# 指定工作路径WORKDIR /home# 开启容器的 80 端口,使得外部可以访问EXPOSE 80# 定义环境变量ENV NAME World# 拷贝文件ADD lxd.txt /tmp/# 镜像内执行命令RUN ["yum", "install", "vim", "-y"]

命名必须为Dockerfile,使用命令构造镜像

docker build -t imageName .

再引用镜像创建容器:

docker run -d -p 4000:80 imageName

通过在容器内运行bash进入容器:

docker exec -it /踏实的龙猫/bash <dockerID> dockerHub使用

dockerHub使用方法和gitHub相同。

在hub.docker.com注册账号lxdtest将自己的镜像并推送到本地仓库 $ docker images//标记到本地仓库,注意仓库必须是用户名$ docker tag myImageName lxdtest/myImageName push到dockerhub //推送客户端登录docker账号$ docker login$ docker push lxdtest/myImageName

此时远程已存在镜像,可pull使用:

$ docker pull lxdtest/myImageName//push后建议清理本机镜像 $ docker rmi lxdtest/myImageName

就先这样,想到了再补充。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。