docker定义、安装、镜像、容器

Docker是什么

  • 使用最广泛的开源容器引擎
  • 一种操作系统级的虚拟化技术
  • 依赖于Linux内核特性:Namespace(资源隔离)和Cgroups(资源限制)
  • 一个简单的应用程序打包工具

Docker设计目标

  • 提供简单的应用程序打包工具
  • 开发人员和运维人员职责逻辑分离
  • 多环境保持一致性

像一艘货船,通过集装箱把代码打包,分开,然后再传输

Docker基本组成

Docker Client:客户端
Ddocker Daemon:守护进程
Docker Images:镜像
Docker Container:容器
Docker Registry:镜像仓库

容器 VS 虚拟机

区别:

传统的vm:
底层都是基础建设(服务器,台式机)===》操作系统===》安装虚拟机软件(vmware、esxi)===>虚拟化系统

容器:
底层都是基础建设(服务器,台式机)===》操作系统===》docker引擎====》容器

Docker应用场景

  • 应用程序打包和发布
  • 应用程序隔离
  • 持续集成
  • 部署微服务
  • 快速搭建测试环境
  • 提供PaaS产品(平台即服务)

Linux安装Docker

Docker版本

社区版(Community Edition,CE)
企业版(Enterprise Edition,EE)

官网:https://docs.docker.com/install/linux/docker-ce/centos/

支持平台

Linux(CentOS,Debian,Fedora,Oracle Linux,RHEL,SUSE和Ubuntu)
Mac
Windows

CentOS7.x安装Docker

关闭selinux
关闭防火墙firewalld
systemctl stop firewalld
systemctl disable firewalld

#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
#添加Docker软件包源(安装源,安装阿里的)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

#安装Docker CE
yum install -y docker-ce

#启动Docker服务并设置开机启动
systemctl start docker
systemctl enable docker

加速器:表示pull镜像快点
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

执行后重启:
systemctl restart docker

[[email protected] ~]# docker info
有警告

解决:
在CentOS中
? ? vim /etc/sysctl.conf?
? ? ?net.bridge.bridge-nf-call-ip6tables = 1
? ? ?net.bridge.bridge-nf-call-iptables = 1
? ? ?net.bridge.bridge-nf-call-arptables = 1
重启系统。

镜像管理

镜像是什么

  • 一个分层存储的文件
  • ? 一个软件的环境
  • ? 一个镜像可以创建N个容器
  • ? 一种标准化的交付
  • ? 一个不包含Linux内核而又精简的Linux操作系统
  • 镜像不是一个单一的文件,而是有多层构成。我们可以通过docker history <ID/NAME> 查看镜像中各层内容及大小,每层
  • 对应着Dockerfile中的一条指令。Docker镜像默认存储在/var/lib/docker/\<storage-driver\>中。

镜像从哪里来?
Docker Hub是由Docker公司负责维护的公共注册中心,包含大量的容器镜像,Docker工具默认从这个公共镜像库下载镜像。
地址:https://hub.docker.com/explore

配置镜像加速器:https://www.daocloud.io/mirror
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

镜像与容器联系:
比如我从一个centos镜像(大小:100M)中新建3个容器(3个容器总共大小 还是100M,因为是在容器之上进行读写的,大大提高磁盘利用率)

管理镜像常用命令:

拉去镜像:docker pull centos:7
例子:

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               1.15                e81eb098537d        9 days ago          109MB
centos              7                   75835a67d134        6 weeks ago         200MB
centos              latest              75835a67d134        6 weeks ago         200MB
导出镜像:
[[email protected] ~]# docker image save centos:7 > centos7.tar
[[email protected] ~]# du -sh centos7.tar
200M    centos7.tar

删除镜像:
[[email protected] ~]# docker image rm centos:7
Untagged: centos:7
[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               1.15                e81eb098537d        9 days ago          109MB
centos              latest              75835a67d134        6 weeks ago         200MB

镜像导入:
[[email protected] ~]# docker image load < centos7.tar 

容器管理

创建容器常用选项

错误:
WARNING: IPv4 forwarding is disabled. Networking will not work.
解决:
[[email protected] ~]# echo "net.ipv4.ip_forward=1" >> /usr/lib/sysctl.d/00-system.conf
[[email protected] ~]# systemctl restart network && systemctl restart docker

创建容器:
[[email protected] ~]# docker run -d -p 88:80 --name=php-icar -h icar1 nginx
-p 宿主机端口:容器端口
--name=php-icar :容器的名称
-h icar1:表示容器主机的名称
nginx:镜像

访问:curl 192.168.1.13:88

查看日志:
[[email protected] ~]# docker logs php-icar -f
[[email protected] ~]# docker logs 2298942019ef -f

![](http://i2.51cto.com/images/blog/201811/26/ab56f940a4acfd0e35310e59f7348775.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

容器资源限制
可以限制下,以免一台机资源占用过多

[[email protected] ~]# docker image inspect centos 镜像信息
内存限额:
允许容器最多使用500M内存和600M的Swap,并禁用 OOM Killer:

CPU限额:
允许容器最多使用一个半的CPU:
docker run -d --name nginx04 --cpus="1.5" nginx
允许容器最多使用50%的CPU:
docker run -d --name nginx05 --cpus=".5" nginx

**
[[email protected] ~]# docker run -d --name nginx07 -m 1G --memory-swap="600m" --cpus=".1" --oom-kill-disable nginx

[[email protected] ~]# docker stats nginx08 --no-stream
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
9cbd71b8d7ce nginx08 0.00% 3.742MiB / 1GiB 0.37% 648B / 0B 0B / 0B 2**

[[email protected] ~]# docker top nginx08 查看完整命令
UID PID PPID C STIME TTY TIME CMD
root 6107 6083 0 12:15 ? 00:00:00 nginx: master process nginx -g daemon off;
101 6142 6107 0 12:15 ? 00:00:00 nginx: worker process

进入容器:[[email protected] ~]# docker exec -it nginx08 bash

原文地址:http://blog.51cto.com/jacksoner/2321989

时间: 2024-11-05 23:24:40

docker定义、安装、镜像、容器的相关文章

docker 批量删除 镜像 容器

我们在docker构建和测试时,经常会产生很多无用的镜像或者容器,我们可用如下两条命令一个一个删除. docker container rm 容器id #删除容器 docker image rm 镜像ID #删除镜像 但是,还可以借助这两个获取容器ID和镜像ID的命令实现批量删除 获取容器ID列表: docker container ls -a -q 获取镜像ID列表: docker image ls -a -q 最终实现批量删除命令 批量删除容器: docker container rm $(

docker安装镜像基本指令

Docker的安装: (1)yum 包更新到最新 > yum update (2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 > yum install -y yum-utils device-mapper-persistent-data lvm2 (3)设置yum源为阿里云 > yum-config-manager --add-repo http://mirrors.aliyun.com/docker

Docker的ubuntu镜像安装的容器无ifconfig和ping命令的解决

Docker的Ubuntu镜像安装的容器无ifconfig命令和ping命令 解决: apt-get update apt install net-tools       # ifconfig apt install iputils-ping     # ping

Docker的安装和镜像管理并利用Docker容器实现nginx的负载均衡、动静分离

Docker的安装 一.Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 二.安装Docker 1.检查内核版本 # uname -r      查看当前linux得版本信息 Docker要求CentOS7最低内核版本为3.1版本 2. 关闭防火墙和selinux # systemctl stop firewalld #

Docker的安装、镜像操作、容器操作及资源控制

Docker概述 Docker是在linux容器里运行应用的开源工具,是一种轻量级的虚拟机.Docker包含三大核心概念,分别是:镜像.容器和仓库.Docker的容器技术可以在一台主机上轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.通过这种容器打包应用程序,意味着简化了重新部署.调试这些琐碎的重复工作.极大地提高了工作效率. Docker容器与传统虚拟化的比较 特性 Docker容器 虚拟机 启动速度 秒级 分钟级 计算能力消耗 几乎无 消耗50% 性能 接近原生 弱于 单机系统支

Docker的安装与镜像、容器、仓库的管理

一.安装docker 1.配置repo仓库 cat /etc/yum.repos.d/docker.repo [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg 2.安装docker yum -y install doc

【干货】Docker的安装、镜像及容器容器

1.Docker概述 Docker是在Linux容器中运行应用的开源工具,是一种轻量级的虚拟机.器容器技术可以在一台主机上轻松地为任何应用创建一个轻量级的.可移植的.自给自足的容器.通过这种容器打包应用程序,意味着简化了重新部署.调试这些琐碎的重复工作,极大地提高了工作效率. 作为一种轻量级的虚拟化方式,Docker与传统虚拟机相比具有显著的优势: 1).Docker容器很快,启动和停止可以在秒级实现,比传统虚拟机要快很多: 2).Docker核心解决的问题是利用容器来实现类似VM,从而以更加节

docker安装 镜像和容器的操作

目录 1 docker 介绍 3 centos安装docker 2 容器和镜像 3 加速配置 4 镜像操作 5 容器操作 1 docker 介绍 # 1 虚拟化--->虚拟机,硬件虚拟化 # 2 docker:centos系统-->大约90m # 3 开源项目,诞生于2013---->17年以后-->两年多的时间 # 4 基于go语言实现的--->docker ce:免费的 docker ee:收费 # 5 轻量级的操作系统虚拟化解决方案 # 6 Docker 的基础是 Li

docker之安装使用和镜像与容器

一.安装下载 下载:epel-release-6-8.noarch.rpm 安装:rpm -Uvh epel-release-6-8.noarch.rpm yum install docker-io 启动:/etc/init.d/docker start 搜寻镜像:docker search centos #搜寻centos镜像 获取镜像:docker pull centos #获取centos镜像 查看镜像:docker images 创建镜像:docker run centos /bin/e