docker学习笔记

一丶什么是容器

• 容器技术已经成为应用程序封装和交付的核心技术

• 容器技术的核心有以下几个内核技术组成:

– Cgroups(Control Groups)-资源管理

– NameSpace-进程隔离

– SELinux安全

• 由于是在物理机上实施隔离,启动一个容器,可以像

启动一个进程一样快速

容器就是限制真机资源让你用  把真机资源限制一定范围让你用

 

Docker缺点

 

• 容器的隔离性没有虚拟化强

 

• 共用Linux内核,安全性有先天缺陷

 

• SELinux难以驾驭

 

• 监控容器和容器排错是挑战

Docker优点

• 相比于传统的虚拟化技术,容器更加简洁高效

• 传统虚拟机需要给每个VM安装操作系统

• 容器使用的共享公共库和程序

隔离  命名空间

hostname

ip

disk  磁盘

proc  进程

ipc  信号向量  发信号  只能给容器里发信号

useradd  用户

.Docker镜像

什么是镜像

• 在Docker中容器是基于镜像启动的

• 镜像是启动容器的核心

• 镜像采用分层设计

• 使用快照的COW技术,确保底层数据不丢失

docker操作命令

使用docker search 名字  找镜像 

 

docker images                  // 查看已有的镜像

 

docker pull     镜像名        // 下载镜像

 

docker push     镜像名     //  上传镜像

 

 

备份镜像(将本地镜像导出为tar文件) (名称加标签  ID 唯一的)

 

docker save    -o     名称加标签       镜像id或镜像名字

    -o  :输出到的文件

docker save  名称加标签     >     位置/名字

 

恢复镜像(通过tar包文件导入镜像)

 

docker load    -i     tar包名字

docker  load     <   tar包名字  

    -i :指定导出的文件。

    -q :精简输出信息。

1.启动镜像

 启动centos镜像生成一个容器(创建新的容器)

 docker 子命令 参数  镜像名:标签                  启动命令

 docker   run      -itd       docker.io/centos:latest        /bin/bash

参数说明

  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

  • -d: 后台运行容器,并返回容器ID;

  • -i: 以交互模式运行容器,通常与 -t 同时使用;

  • -P: 随机端口映射,容器内部端口随机映射到主机的高端口

  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

  • --name="nginx-lb": 为容器指定一个名称;

  • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

  • --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

  • -h "mars": 指定容器的hostname;

  • -e username="ritchie": 设置环境变量;

  • --env-file=[]: 从指定文件读入环境变量;

  • --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

  • -m :设置容器使用内存最大值;

  • --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container:<name|id> 四种类型;

  • --link=[]: 添加链接到另一个容器;

  • --expose=[]: 开放一个端口或一组端口;

  • --volume , -v: 绑定一个卷

 

posted @ 2020-06-09 23:55  WWWQQQ1999  阅读(118)  评论(0编辑  收藏  举报