docker之核心概念与安装

简介: docker之核心概念与安装

Docker核心概念:

Docker有三大核心概念:镜像、容器和仓库。熟悉三大核心概念对于掌握Docker技术很重要。

Docker镜像:

Docker镜像类似于虚拟机镜像,可以理解为一个只读的模板。

镜像是创建Docker容器的基础。

Docker容器:

Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。

容器是从镜像创建的应用运行实例。它可以启动、停止、删除,而容器之间是彼此互相隔离、互不可见的。

可以把容器看做一个简易的linux系统及运行着应用程序的一个盒子。


Docker仓库


Docker仓库类似于代码仓库,是Docker集中存放镜像文件的场所。

目前最大的公开仓库是Docker Hub。


注:镜像自身是只读的,容器从镜像启动的时候,会在镜像最上层创建一个可写层。


Docker引擎:

Docker引擎目前分为两个版本:社区版本(CE)和企业版本(EE)。

社区版本包括大部分的核心功能,企业版本通过付费的方式提供认证支持、镜像管理、容器托管、安全扫描等高级服务。

社区版本每个月会发布一次尝鲜版本,每个季度(3、6、9、12)会发布一次稳定版本。版本命名格式为“年份.月份”。


安装Docker:

系统环境为centos7.4,设置镜像源为阿里源。


[root@docker01 ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@docker01 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@docker01 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

设置容器源为阿里源:


[root@docker01 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@docker01 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@docker01 ~]# yum makecache fast

安装并启动Docker:

[root@docker01 ~]# yum -y install docker-ce
[root@docker01 ~]# systemctl start docker
[root@docker01 ~]# systemctl enable docker
[root@docker01 ~]# docker -v
Docker version 19.03.8, build afacb8b

配置镜像加速:


[root@docker01 ~]# vim /etc/docker/daemon.json
[root@docker01 ~]# cat /etc/docker/daemon.json 
{
  "registry-mirrors":["https://655dds7u.mirror.aliyuncs.com"]
}
[root@docker01 ~]# systemctl restart docker

运行容器测试:


[root@docker01 ~]# docker run -d -p 80:80 --name web nginx
[root@docker01 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
0091879e5d99        nginx               "nginx -g 'daemon of…"   30 seconds ago      Up 29 seconds       0.0.0.0:80->80/tcp   web

Docker镜像管理:

搜索镜像:docker search [关键词]

例:

# docker search centos    #搜索centos镜像(优先选择星数多的)

获取镜像:docker pull NAME:[TAG]

例:

# docker pull busybox:latest  #获取busybox:latest镜像,不指定TAG默认下载最新版

查看镜像:docker images或docker image ls

例:

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              602e111c06b6        12 days ago         127MB
busybox             latest              be5888e67be6        2 weeks ago         1.22MB

镜像的五列信息分别为:镜像来源,镜像标签,镜像ID,创建时间,镜像大小


添加镜像标签:docker tag [镜像] [镜像标签]

例:

# docker tag busybox:latest user/busybox:latest

查看详细信息:docker inspect [镜像]

例:

# docker inspect busybox:latest

删除镜像:docker rmi 或 docker image rm


例:

# docker rmi -f nginx   #-f选项为强制删除镜像,即使有容器依赖它

清理镜像:docker image prune

例:

# docker image prune -a  #清除所有无用镜像

选项:

# docker image prune -a   #清除所有无用镜像
选项:
-a:删除所有无用镜像,不仅是临时镜像
-f:强制删除镜像,不进行确认

导出镜像:docker save

例:

# docker save -o busybox_latest.tar busybox:latest
# ls
busybox_latest.tar

载入镜像:docker load

例:

# docker load -i busybox_latest.tar

上传镜像:docker push

例:

# docker tag busybox:latest user/busybox:latest
# docker push user/busybox:latest

补充:不想敲命令的话,可以做个脚本安装:

脚本内容如下:

#!/bin/bash
function install_pre (){
  yum install -y yum-utils device-mapper-persistent-data lvm2 &>/dev/null
  yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo &>/dev/null
  yum makecache fast &> /dev/null
}
function install_docker (){
  yum -y install docker-ce &>/dev/null
  systemctl start docker &>/dev/null 
}
function configure_docker (){
  echo -e "{" >/etc/docker/daemon.json
  echo -e "\t\"registry-mirrors\":[\"https://655dds7u.mirror.aliyuncs.com\"]" >>/etc/docker/daemon.json
  echo -e "}" >>/etc/docker/daemon.json
}
function restart_docker (){
  systemctl restart docker
  docker -v
}
main (){
install_pre
install_docker
configure_docker
restart_docker
}
main
echo "docker安装完成... ..."

下一节将介绍docker容器管理


目录
相关文章
|
4月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
2月前
|
关系型数据库 数据库 PostgreSQL
docker 安装 Postgres 17.6
本文介绍如何通过Docker安装和配置PostgreSQL 17.6。内容包括拉取镜像、导出配置文件、运行容器并挂载数据与配置文件目录,以及进入容器使用psql操作数据库的完整步骤,便于持久化管理和自定义配置。
295 3
docker 安装 Postgres 17.6
|
1月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
287 5
|
1月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
300 2
|
7月前
|
存储 安全 C++
Odoo 安装方式选择:源码安装 vs Docker
Odoo部署常采用源码编译或Docker容器化,但分别面临依赖复杂、版本风险和服务化难题,以及镜像臃肿和扩展受限的问题。Websoft9提出混合方案,融合两者优势:通过智能环境适配、三阶段部署流程(环境预检、混合模式选择、持久化配置)及声明式YAML配置,实现高效、灵活的双模运行时。此方案显著降低依赖冲突解决时间(从83分钟至0),生产环境构建耗时缩短至8分钟,并达100% CVE漏洞修复率,适合ERP定制开发与规模化部署的企业需求。
|
5月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
588 4
|
4月前
|
Linux Docker Windows
windows docker安装报错适用于 Linux 的 Windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.exe --update” 进行更新。
适用于 Linux 的 Windows 子系统需更新至最新版本(如 wsl.2.4.11.0.x64.msi)以解决 2025 年 Windows 更新后可能出现的兼容性问题。用户可通过运行 “wsl.exe --update” 或访问提供的链接下载升级包进行更新。
1549 0