一、概念
Docker是一个开源的容器化平台,它可以使我们避免部署对服务器环境的依赖,减少复杂的部署流程。它允许开发者将应用程序及其依赖项打包到一个轻量级,可移植的容器中,然后在任何支持Docker的环境中运行。Docker的出现极大地简化了应用程序的部署和管理,使得开发、测试和生产环境的一致性得到了显著提升。
二、Docker的核心概念
2.1、容器(Container)
定义:容器时Docker的基本运行单元,它是一个轻量级的、独立的、可执行的软件包,包含运行应用程序所需的一切:代码、运行时、系统工具、系统库等。
特点:
隔离性:容器之间互相隔离,每个容器运行在自己的环境中。
轻量级:容器共享主机系统的内核,因此比虚拟机更轻量。
可移植性:容器可以在任何支持Docker的环境中运行,确保了环境的一致性。
2.2、镜像(Image)
定义:镜像是容器的模板,它包含了创建容器所需的所有文件和配置。镜像是只读的,一旦创建就不能修改。
特点:
分层储存:镜像采用分层储存机制,每一层代表一个文件系统的变化。
可重用性:镜像可以被多个容器共享,减少了储存空间的占用。
版本控制:镜像可以通过标签(Tag)进行版本控制,方便管理和回滚。
2.3、仓库(Repository)
定义:仓库是储存和分发镜像的地方。Docker Hub是Docker官方的公共仓库,用户也可以创建私有仓库。
特点:
公共仓库:Docker Hub提供了大量的公共镜像,用户可以直接使用。(大多数公共仓库都是国外仓库,通常都是下载资源速度慢,一般会用其镜像或私有仓库)。
私有仓库:用户可以搭建私有仓库(俗称:私服),用于储存和管理内部使用的镜像。
2.4、Dockerfile
定义:Dockerfile是一个文本文件,包含了一系列指令,用于自动化构建Docker镜像。
实例:
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y nginx
COPY index.html /var/www/html/
CMD ["nginx", "-g", "daemon off;"]
三、创建Docker的示例
//docker run这是 Docker 命令,用于创建并运行一个新的容器,-d 参数表示容器将在后台运行。
docker run -d \
//--name 参数用于指定容器的名称。
--name mysql \
//-p 参数用于指定端口映射(将主机的 3306 端口映射到容器的 3306 端口)。
-p 3306:3306 \
//-e 参数用于设置环境变量(这里设置了 TZ 环境变量为 Asia/Shanghai,即设置容器的时区为上海时间)。
-e TZ=Asia/Shanghai \
//-e 参数用于设置环境变量(这里设置了 MYSQL_ROOT_PASSWORD 环境变量为 123,即设置 MySQL 的 root 用户密码为 123)。
-e MYSQL_ROOT_PASSWORD=123 \
//这是要运行的 Docker 镜像的名称(里使用的是官方的 MySQL 镜像,Docker 会从 Docker Hub 拉取最新的 MySQL 镜像并运行)。
mysql
四、Docker常见命令介绍
五、Docker的基本操作
在 Linux 系统上,可以使用以下命令安装 Docker(sudo的功能是让普通用户以超级管理员的身份执行,可以不带):
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
启动 Docker 服务
sudo systemctl start docker
设置 Docker 服务开机自启:
sduo systemctl enable docker
Docker容器开机自启
sudo docker update --restart=always [容器名/容器id]
给常用Docker命令起别名
# 修改/root/.bashrc文件
vi /root/.bashrc
标签:容器,仓库,sudo,详解,镜像,Docker,docker
From: https://blog.csdn.net/weixin_70171141/article/details/142398785