美文网首页
容器01-docker

容器01-docker

作者: 曦岩君 | 来源:发表于2023-07-05 23:31 被阅读0次

1.Namespace--隔离进程,相对独立的运行空间

类型及功能

MNT Namespace(mount):系统磁盘挂载及文件系统的隔离空间,容器被宿主机分配到独立的目录下运行,使用chroot方式

IPC Namespace(Inter-Process Communication):进程间的通信隔离,不同进程间资源是严格隔离的

UTS Namespace:主机名隔离,容器可以有自己的主机名,容器间来讲主机名是相互隔离和独立的.

PID Namespace:进程ID隔离,容器内部的进程ID独立,确保每个容器以及宿主机的进程号不会因相同而出现问题

NET Namespace:网络隔离功能,宿主机会给每个容器分配至少一个虚拟网桥,通过虚拟网桥容器可以将自己的IP地址暴露(或NAT)出去,

USER Namespace:容器间的内部用户相互独立隔离,同时与宿主机也是隔离的.

2.docker命令:

docker run 启动一个容器,若本地没有镜像,则会在仓库拉取一个镜像,并创建

docker build 构建一个镜像,通常通过dockerfiles

docker commit 已经创建并修改过的容器打包为镜像

docker cp 拷贝文件,可以在容器和宿主机间拷贝

docker create 一般不用,run比较好用直接启动,create只创建不运行

docker diff  对比容器和镜像差异,

docker events 容器运行事件查看,是否正常退出等

docker exec -it     ....   sh/bash  进入容器打开shell终端,可进行linux命令操作

docker export 到处镜像文件系统

docker info 显示版本,运行时等信息

docker inspect 显示容器-镜像、网络、容器信息

docker kill 杀死一个容器,强制杀死

docker logs 查看容器的日志,类似var内的logz,message

docker pause 暂停一个或者多个容器

docker port 列出一个容器映射的端口

docker ps 列出容器

docker restart 重启容器

docker rm 删除容器 -f 强制

镜像相关

docker images 查看系统有哪些容器的镜像

docker login 登录镜像仓库

docker logout 登出镜像仓库

如下命令也可在docker后加 images 效果一样:

docker pull 从镜像仓库下载镜像

docker push 上传镜像到镜像仓库

docker tag 给镜像打一个tag标签

3.docker 存储引擎:使用UnionFS存储驱动模式,将docker运行所需的不同位置文件或目录mount到一个虚拟的目录下,分层存放,文件系统在最上层,可读可写,下层都是只读,实现方式:overlay2, 配置文件位置:/etc/docker/daemon.json:

"graph": "/var/lib/docker" 容器主目录(能看到文件系统等存放于此)

"storage-driver": "overlay2" (存储引擎)

4.docker -v:volume存储卷,-v就是说明操作会涉及文件系统存储卷,一般来说容器被销毁文件系统随之被删除,容器的销毁和创建就会引起数据丢失,所以一般会挂载其他位置的存储卷,做到数据永久保存,

docker volume create nginx-data ##创建挂载位置,在容器主目录下能看见此目录/var/lib/docker(docker rm -v 这个命令也会干掉这个目录,但是挂载指向的文件不会被干掉)

docker run -it -d -p 80:80 -v nginx-data:/data nginx:1.20.2 ##将宿主机的/data目录挂载到容器nginx的nginx-data -v参数后写明挂载目录

一把使用集中式存储或ceph等做永久存储,因为若是多节点的集群容器不一定飘到哪一个宿主机,在某一台创建永久存储位置,会引起挂载异常,同时数据也无法访问

5.docker -p: 端口映射,容器和宿主机间的网络通信方式,容器如果需要提供网络服务,就需要暴露端口,但是容器在宿主机上运行,容器的端口必须通过宿主机暴露出去,若多容器跑在一台宿主机,同时需要暴露端口,那每台容器需要绑定的宿主机的端口必须不同,徐事先规划好,以免引起冲突,导致服务异常.同样的每个容器内部若使用多个端口提供服务则也要区分好,但是容器间是不受影响的(NET Namespace 容器间网络是隔离的)

6.安装等实操截图后续补上(暂时实验环境有点问题)

相关文章

  • 01-docker基础

    1:什么是容器? 容器就是在隔离的环境中运行的一个进程,如果进程停止,容器就会退出。隔离的环境拥有自己的系统文件,...

  • 01-Docker基础入门

    Docker容器概念 Docker容器的基础为Linux容器(LXC)技术,轻量化级别的技术。Docker为C/S...

  • 01-Docker入门篇章

    Step1:了解Docker 开源的容器平台:Golang https://github.com/docker/d...

  • kubernetes学习-01-docker安装

    docker的安装参考k8S官方文档及docker官方文档,基于centos7.4k8S官方文档安装docker的...

  • 01-Docker架构及原理

    一、Docker简介 1.1 什么是容器? 容器是一个允许我们在资源隔离的过程中,运行应用程序和其依赖项、轻量的、...

  • 01-docker之安装手册

    docker安装 在Linux centOS7上面安装docker。操作如下(参考官网给出的安装手册:https:...

  • Docker系列课程01-Docker简介

    原文:http://www.itmuch.com/docker/01-docker-summary/ 1.1 Do...

  • 01-Docker实战,搭建NodeJs环境

    目的 实现简单的docker的nodejs容器,使用Dockerfile构建我们的使用nodejs开发的系统 技术...

  • Docker入门(3)---Docker容器

    Docker 容器操作 启动容器 启动已终止容器 容器查看 停止容器 进入容器 删除容器

  • Docker容器管理

    目录 创建容器 启动容器 停止容器 进入容器 删除容器 容器迁移 1. 创建容器 docker创建容器可以用doc...

网友评论

      本文标题:容器01-docker

      本文链接:https://www.haomeiwen.com/subject/dxakudtx.html