Docker

什么是容器

  • 容器技术已经成为应用程序封装和交付的核心技术
  • 容器技术的核心有以下几个内核技术组成:
    • Cgroups( Control Groups)-资源管理
    • NameSpace-进程隔离
    • SELinux安全
  • 由于是在物理机上实施隔离,启动一个容器,可以像启动一个进程一样快速

什么是Docker

  • Docker是完整的一套容器管理系统
  • Docker提供了一组命令,让用户更加方便直接地使 用容器技术,而不需要过多关心底层内核技术

Docker特性

1)Docker优点

  • 相比于传统的虚拟化技术,容器更加简洁高效
  • 传统虚拟机需要给每个VM安装操作系统
  • 容器使用的共享公共库和程序

在这里插入图片描述

2)Docker缺点

  • 容器的隔离性没有虚拟化强
  • 共用Linux内核,安全性有先天缺陷
  • SELinux难以驾驭
  • 监控容器和容器排错是挑战

部署Docker

1)环境准备

  • 需要64位操作系统
  • 至少RHEL65以上的版本,强烈推荐RHEL7
  • 卸载firewalld

2)安装Docker

  • docker虚拟机配置
    2核,1G内存,4台,能访问外网
    192.168.1.100repo(yum服务器)
    192.168.1.30 registry(容器仓库)
    192.168.1.31 docker1(容器主机1)
    192.168.1.32 docker2(容器主机2)

  • 配置yum源
    docker软件包位于光盘Rhl7 -extras-.iso中

mkdir /var/www/html/extras 
mount -t iso9660 -o ro,loop RHEL7OSP-extras.iso  /var/www/html/extras
  • 安装Docker(Docker1 and Docker2)
配置yum源
yum -y install docker
systemctl start docker
systemctl enable docker
docker version    #查看docker版本信息
ifconfig   #如果有docker0网络设备,证明安装成功

Docker镜像

1)什么是镜像

  • 在Docker中容器是基于镜像启动的
  • 镜像是启动容器的核心
  • 镜像采用分层设计
  • 使用快照的COW技术,确保底层数据不丢失
  • 可以多个容器同时使用
    在这里插入图片描述

2)Docker Hub镜像仓库

  • https://hub.docker.com
  • Docker官方提供的公共镜像的仓库(Registry)
] docker search IMAGE_NAME   #搜索镜像
NAME    #镜像名
OFFICIAL    #状态为[OK],代表该镜像为官方镜像,非官方镜像会有安全风险
] docker search busybox

3)镜像操作

] docker help pull
] docker pull 镜像名	 #从仓库下载镜像
] docker pull docker.io/busybox   
] docker images  #查看已有镜像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/busybox   latest              6d5fcfe5ff17        7 weeks ago         1.22 MB
#镜像名 				标签					镜像ID				创建时间				大小
] docker help push
] docker push docker.io/busybox   #上传镜像到仓库
] docker save docker.io/busybox:latest -o busybox.tar    #将镜像导出为tar文件,镜像的名称:标签=唯一标识
] docker load -i busybix.tar   #从tar文件导入镜像
] docker history docker.io/centos:lastest   #查看镜像制作历史(可以查看镜像层数,启动命令等)
] docker inspect docker.io/centos:lastest   #查看镜像底层信息(详细信息)
] docker rmi docker.io/busybox    #删除镜像(镜像已启动容器时需要先删除容器)
] docker tag docker.io/busybox:lastest NAME:LABEL #为镜像添加名称和标签

4)容器常用命令

所有针对容器的命令,指定容器的ID来对容器做操作

docker run	 		 #运行容器
docker ps  			 #查看容器列表
docker stop   		 #关闭容器
docker start  		 #启动容器
docker restart  	 #重启容器
docker attach|exec 	 #进入容器
docker inspect   	 #查看容器底层信息
docker top    	 	 #查看容器进程列表
docker rm     		 #删除容器

例:

docker run -i交互式 -t终端 -d后台   #需要区别要启动的容器服务的种类来确定是否将容器放置后台
docker run 参数 镜像名称:标签 启动命令
run = 创建 + 运行 + 连接   
docker run -it docker.io/centos:latest /bin/bash 
docker run -it docker.io/centos:latest   #不写启动命令时,以默认命令启动
docker inspect 镜像名  #查看默认启动命令
docker run -itd docker.io/nginx:latest   #如果启动命令为后台运行的服务时,加-d
docker ps
docker ps -a   #显示所有容器(包括已停止的)
docker ps -q   #只显示容器ID
docker top 容器ID  #查看容器正在执行的进程,相当于ps
docker rm 容器ID   #删除容器,需要容器已关闭
docker rm $(docker stop 容器ID)   #执行stop会返回容器ID,通过$()将返回值传递给rm
docker rm $(docker stop $(docker ps -aq))
docker exec -it 容器ID 启动命令   #以新进程连接
docker attach -it 容器ID 启动命令   #以容器上帝进程的身份连接

使用attach连接容器,exit退出后,容器将会停止,因为退出时相当于退出了上帝进程,使用快捷键Ctrl+p+q保持容器运行并退出。使用exec连接,退出后容器继续运行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值