Dcoker基础定义

Dcoker基础定义

Docker 是容器引擎,把应用 + 依赖打包成**镜像(蓝图)**,运行后生成隔离的**容器(运行实例)**,保证环境一致、应用隔离、部署简单。

Dcoker它是什么?(核心定义)

Docker 是一个开源的应用容器引擎。它允许你把一个应用程序及其所有依赖(代码、运行环境、系统工具、库文件等)打包成一个**“镜像”(Image),然后这个镜像可以随时在任何装有 Docker 的机器上,运行出一个隔离的“容器”**(Container)。

  • 镜像(Image):相当于一个**“安装包”**或“蓝图”。比如你下载的 mysql:8.0 就是一个镜像,里面包含了 MySQL 运行所需的所有文件,但此时它还没运行。

简单说些就像是压缩包,所有东西都给你打包好了等你解压使用

  • 容器(Container):相当于一个**“正在运行的进程”**或“实例”。你把镜像 run(运行)起来,它就变成了一个活的容器,你的数据库和应用程序就运行在里面。

相当于解压了压缩包,把软件给你解压出来解压完以后自动启动执行

普通的压缩包解压后,文件是散落在你硬盘里的,和系统其他文件混在一起;而 Docker “解压”(即创建容器)时,实际上是在你的电脑里画了一个“沙盒”(隔离区)。这个“沙盒”拥有自己独立的文件系统、网络和进程空间,外部程序无法干扰它。

为什么要用 Docker?(对你有什么好处)

结合你刚才问的“部署 MySQL 和前后端项目”,Docker 会带来三个实实在在的好处:

  1. 环境一致性:你在自己电脑上构建的镜像,扔到公司服务器上,运行结果完全一样。彻底告别“环境配置半天最后项目起不来”的噩梦。
  2. 隔离性:不用担心数据库、Redis、后端服务之间互相干扰。即使 MySQL 容器崩溃了,也绝对不会影响你电脑上的其他软件。
  3. 简化部署:以前部署项目要手动安装 Java、配置 Nginx、安装 MySQL,一步步操作繁琐且容易出错。现在你只需要写好一个配置文件(Dockerfiledocker-compose.yml),一行命令就能让整个项目(前端+后端+数据库)瞬间全部启动。

1.卸载旧版

首先如果系统中已经存在旧的Docker,则先卸载:

text
yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine \
    docker-selinux

2.配置Docker的yum库

首先要按照一个yum工具

text
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

sudo不是超级管理员需要加这个,如果是就不需要了

安装成功后,执行命令,配置Docker的yum源(已更新为阿里云源):

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

sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

更新yum,建立缓存

text
sudo yum makecache fast

3.安装Docker

text
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4.启动和校验

text
# 启动Docker
systemctl start docker

# 停止Docker
systemctl stop docker

# 重启
systemctl restart docker

# 设置开机自启
systemctl enable docker

# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps

5.配置镜像加速

镜像地址可能会变更,如果失效可以百度找最新的docker镜像。

text
# 创建目录
rm -f /etc/docker/daemon.json

# 复制内容
tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://mirrors.tuna.tsinghua.edu.cn",
        "http://mirrors.sohu.com",
        "https://ustc-edu-cn.mirror.aliyuncs.com",
        "https://ccr.ccs.tencentyun.com",
        "https://docker.m.daocloud.io",
        "https://docker.awsl9527.cn"
    ]
}
EOF

# 重新加载配置
systemctl daemon-reload

# 重启Docker
systemctl restart docker

Docker一些基础命令

命令说明文档地址
docker pull拉取镜像docker pull
docker push推送镜像到DockerRegistrydocker push
docker images查看本地镜像docker images
docker rmi删除本地镜像docker rmi
docker run创建并运行容器(不能重复创建)docker run
docker stop停止指定容器docker stop
docker start启动指定容器docker start
docker restart重新启动容器docker restart
docker rm删除指定容器docs.docker.com
docker ps查看容器docker ps
docker logs查看容器运行日志docker logs
docker exec进入容器docker exec
docker save保存镜像到本地压缩文件docker save
docker load加载本地压缩文件到镜像docker load
docker inspect查看容器详细信息docker inspect

默认情况下,每次重启虚拟机我们都需要手动启动Docker和Docker中的容器。通过命令可以实现开机自启:

text
# Docker开机自启
systemctl enable docker

# Docker容器开机自启
docker update --restart=always [容器名/容器id]

评论区

评论加载中...