Docker 容器是一种轻量级的虚拟化技术,它使得应用程序能够在独立的环境中运行,而不需要像传统虚拟化技术那样占用更多的系统资源。
Docker 容器是一个可运行的软件包,包括应用程序、依赖项和配置文件,它们可以在任何支持 Docker 的操作系统上运行,包括 Linux、Windows 和 macOS。Docker 容器具有以下优点:
总结一句话:开箱即用,快速部署,可移植性强,环境隔离
Docker 的安装步骤因操作系统而异。以下是在 Linux、Windows 的基本步骤:
在 Windows 10(专业版) 上安装 Docker:
Docker for Win10 安装包下载地址:
https://store.docker.com/editions/community/docker-ce-desktop-windows
国内镜像加速
https://registry.docker-cn.com #Docker中国区
http://hub-mirror.c.163.com #网易
在 Linux 上安装 Docker:
安装环境:Centos 7
安装条件:docker官方要求至少3.8以上,建议3.10以上
Docker 版本:docker EE 企业版本、docker CE 社区版本
修改seliunx 配置
vi /etc/selinux/config
关闭防火墙:systemctl stop firewalld.service
安装wget命令:yum install -y wget
下载阿里云docker社区版 yum源
cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
查看docker安装包:yum list | grep docker
安装Docker Ce 社区版本:yum install -y docker-ce.x86_64
设置开机启动:systemctl enable docker
更新xfsprogs:yum -y update xfsprogs
启动docker:systemctl start docker
重启docker:systemctl restart docker.service
查看版本:docker version
查看详细信息:docker info
什么是docker镜像
镜像(Image)是一个包含了应用程序运行所需的所有依赖关系、配置信息和代码的轻量级可执行软件包。Docker 镜像是构建 Docker 容器的基础,它可以被认为是一个只读的模板,用于创建容器实例。
在 Docker 中,通过使用 Docker 镜像,管理员和开发者可以轻松地创建、启动、停止和删除容器,从而实现快速、可靠和可重复的应用程序部署。
配置阿里云镜像加速
vim /etc/docker/daemon.json
改为下面内容
{ "debug":true,"experimental":true, "registry-mirrors":["https://pb5bklzr.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"] }
然后重启docker
systemctl restart docker.service
查看信息
docker info
相关命令:
docker search centos
docker search --filter "is-official=true" centos
docker search --filter stars=10 centos
docker images
docker pull redis
docker rmi redis
docker tag redis myredis
docker镜像与容器之间的关系
我们可以把 Docker 镜像和容器的关系类比为烹饪中的食谱和菜肴的关系。
食谱是菜肴的模板,描述了制作菜肴所需的所有原材料、调料和制作方法,它们是静态的,一旦制作完成就不会再被改变。
而菜肴则是根据食谱制作的可食用实例,是一个独立的、可执行的对象,它们是动态的,可以在制作、调味和食用过程中进行修改和更新。
类比到 Docker 技术中,Docker 镜像就相当于食谱,它包含了应用程序运行所需的所有依赖关系、配置信息和代码。而容器则是根据镜像创建的可运行实例,就像菜肴是根据食谱制作的可食用实例。通过使用不同的镜像,就像使用不同的食谱制作不同的菜肴一样,可以创建不同的容器,同时一个镜像也可以被用来创建多个容器。
Docker 镜像和容器是 Docker 技术中两个重要的概念,它们之间的关系如下:
容器相关命令:
docker run -itd --name=myredis redis
docker ps -a
docker ps
docker stop CONTAINER_ID / CONTAINER_NAME
docker stop $(docker ps -a -q)
docker start $(docker ps -a -q)
docker start CONTAINER_ID / CONTAINER_NAME
docker restart CONTAINER_ID / CONTAINER_NAME
docker rm CONTAINER_ID / CONTAINER_NAME
docker rmi -f CONTAINER_ID / CONTAINER_NAME
docker inspect CONTAINER_ID / CONTAINER_NAME
docker exec -it 0ad5d7b2c3a4 /bin/bash
在 Docker 中,容器和宿主机之间可以通过文件复制和挂载实现文件的共享和传递。
文件复制是指将文件从宿主机复制到容器内或者从容器内复制到宿主机。例如,可以使用 docker cp 命令将宿主机中的文件复制到运行中的容器内:
//从宿主机复制到容器:docker cp 宿主机本地路径 容器名字/ID:容器路径
docker cp /path/to/local/file container_name:/path/to/container/file
也可以将容器内的文件复制到宿主机中:
//从容器复制到宿主机:docker cp 容器名字/ID:容器路径 宿主机本地路径
docker cp container_name:/path/to/container/file /path/to/local/file
文件挂载是指将宿主机上的文件系统目录挂载到容器中作为容器的一个目录,并且容器内的修改会即时反映到宿主机的文件系统上。在运行容器时,使用 -v 或者 --mount 参数来进行文件挂载。例如:
//宿主机文件夹挂载到容器里:docker run -itd -v 宿主机路径:容器路径 镜像ID
docker run -v /path/to/local/directory:/path/to/container/directory image_name