六脉连环大总结,教你干趴Docker

本文涉及的产品
RDS AI 助手,专业版
RDS Agent(兼容OpenClaw),2核4GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 六脉连环大总结,教你干趴Docker

⛳️ 1.什么是Docker?


可以简单认为,容器是一个超级轻量级的虚拟机(主机),容器和容器之间的进程是相互隔离的。

580bccbf2ab94bcbadbf01dd20d927a9.png


Docker 利用容器(Container)独立运行的一个或一组应用。

容器是用镜像创建的运行实例。

它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)

和运行在其中的应用程序。容器的定义和镜像几乎一模一样,

也是一堆层的统一视角,

唯一区别在于容器的最上面那一层是可读可写的。


仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

最大的公开仓库是 Docker Hub:https://hub.docker.com,存放了数量庞大的镜像供用户下载。

国内的公开仓库包括阿里云 、网易云等


Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。

Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,

要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本CentOS 7 的内核一般都是3.10的,

而CentOS 6.X 的内核一般都是2.6,

在2.6的内核下,Docker运行会比较卡,所以一般会选择升级到3.10版本。


⛳️ 2.安装Docker


✨ 2.1 安装依赖包


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

sudo yum-config-manager

–add-repo

https://download.docker.com/linux/centos/docker-ce.repo

[root@centos7 ~] yum -y install docker-ce docker-ce-cli containerd.io


✨ 2.2 启动 Docker


[root@centos7 ~]# systemctl enable docker

[root@centos7 ~]# systemctl start docker

[root@centos7 ~]# systemctl status docker


c9f41b4dbde7475e96118f7941f0884d.png


✨ 2.3 修改Docker存储位置


默认情况下 Docker的存放位置为:/var/lib/docker

可以通过命令查看具体位置:docker info | grep “Docker Root Dir”

首先停掉 Docker 服务:

systemctl stop docker

然后移动整个/var/lib/docker 目录到目的路径

mkdir -p /root/data

mv /var/lib/docker /root/data/docker

ln -s /root/data/docker /var/lib/docker --快捷方式


⛳️ 3.Docker常用命令


国内镜像:https://hub.daocloud.io/

docker pull daocloud.io/library/centos:8.2.2004


✨ 3.1 从网络拉取镜像


docker pull centos:7.8.2003


✨ 3.2 创建一个容器


#docker images --镜像

docker run -d --name centos7.8 -h centos7.8

-p 220:22 -p 3387:3389

–privileged=true

centos:7.8.2003 /usr/sbin/init

#我想拥有一个 linux 8.2 的环境

docker run -d --name centos8.2 -h centos8.2

-p 230:22 -p 3386:3389

–privileged=true

daocloud.io/library/centos:8.2.2004 init

进入容器

docker exec -it centos7.8bash

docker exec -it centos8.2 bash

cat /etc/redhat-release --查看系统版本


✨ 3.3 常用命令


docker ps --查询容器

docker rm -f ***** --删除容器(可以删除多个)

docker rmi mysql:1.0 --删除镜像

docker stop centos7.8 --停止容器

如果创建时未指定 --restart=always,可通过update命令:

docker update --restart=always centos7.8

[root@jeames ~]# docker --help --查看命令


⛳️ 4.Docker安装数据库


✨ 4.1 MySQL部署

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司

MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,

而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

Mysql 是开源的,所以你不需要支付额外的费用。

Mysql 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

MySQL 使用标准的 SQL 数据语言形式。

Mysql 可以允许于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。

Mysql 对 PHP 有很好的支持,PHP 是目前最流行的 Web 开发语言。

MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为 8TB。

Mysql 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 Mysql 系统


📢📢下载镜像


https://hub.docker.com/ 中搜索mysql

[root@jeames ~]# docker pull mysql:5.7.30

[root@jeames ~]# docker pull mysql:8.0.20


📢📢 创建容器


mkdir -p /usr/local/mysql5730/

mkdir -p /usr/local/mysql8020/


docker run -d --name mysql5730 -h mysql5730

-p 3309:3306

-v /usr/local/mysql5730/conf:/etc/mysql/conf.d

-e MYSQL_ROOT_PASSWORD=root -e TZ=Asia/Shanghai

mysql:5.7.30


docker run -d --name mysql8020 -h mysql8020

-p 3310:3306

-v /usr/local/mysql8020/conf:/etc/mysql/conf.d

-e MYSQL_ROOT_PASSWORD=root -e TZ=Asia/Shanghai

mysql:8.0.20


📢📢访问Mysql


##登陆容器

docker exec -it mysql5730 bash

mysql -uroot -proot

mysql> select user,host from mysql.user

##远程访问

mysql -uroot -proot -h192.168.59.220 -P3309


✨ 4.2 Redis部署


REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,

是跨平台的非关系型数据库。

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。

Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。


📢📢 镜像下载


[root@jeames ~]# docker search redis

[root@jeames ~]# docker pull redis:6.2.2

[root@jeames ~]# docker pull redis


📢📢 安装部署


docker run -di --name=redis -h redis -p 26379:6379 redis

docker update --restart=always redis --开机自启动

docker ps -a --format “table {{.ID}}\t{{.Names}}\t{{.Status}}”


⛳️ 5.迁移备份


✨ 5.1 容器保存为镜像


[root@jeames ~]# docker images

[root@jeames ~]# docker ps -a

docker ps -a --format “table {{.ID}}\t{{.Names}}\t{{.Status}}”

[root@jeames ~]# docker commit redis myredis

##使用新的镜像创建容器

docker run -di --name myredis myredis


da7a1ad87013432a97c1419b49ff03bf.png


✨ 5.2 镜像的备份


[root@jeames ~]# docker save -o myredis.tar myredis

默认放到当前目录

[root@jeames ~]# ll

[root@jeames ~]# pwd

7838a6886b264e0baa8a0d4cdca1dfa6.png


✨ 5.3 恢复过程


##删除容器

docker ps --format “table {{.ID}}\t{{.Names}}\t{{.Status}}”

docker stop myredis

docker rm myredis

##删除镜像

docker images

docker rmi myredis

fb3b7aa47b7d4d1fafaf534ef8938351.png


[root@jeames ~]# docker load -i myredis.tar


713c0c5e53b14ba2be8c574671d17a09.png


⛳️ 6.私有仓库搭建配置


✨ 6.1.拉取私有仓库镜像


[root@jeames ~]# docker pull registry

Using default tag: latest


571ca968a18f44cc861c8ac45accf00e.png


✨ 6.2 启动私有仓库容器


docker run -di --name registry -p 5000:5000 registry

docker update --restart=always registry --开机自启动

docker ps -a --format “table {{.ID}}\t{{.Names}}\t{{.Status}}”


29941cf6a8264dc1aaeb49132bdaf847.png


访问网址:http://192.168.1.54:5000/v2/_catalog


✨ 6.3 设置信任

[root@jeames ~]# vi /etc/docker/daemon.json

{

“registry-mirrors”:[“https://docker.mirrors.ustc.edu.cn”],

“insecure-registries”:[“192.168.1.54:5000”]

}

[root@jeames ~]# systemctl restart docker --重启docker


✨ 6.4 上传本地镜像

[root@jeames ~]# docker images

[root@jeames ~]# docker tag postgres:11 192.168.1.54:5000/postgres

3795883fdee24bbf9134680b2b43b39c.png

[root@jeames ~]# docker push 192.168.1.54:5000/postgres




✨ 6.5.重新拉取镜像


[root@jeames ~]# docker rmi 192.168.1.54:5000/postgres

[root@jeames ~]# docker images

[root@jeames ~]# docker pull 192.168.1.54:5000/postgres



8f04f48652f446bb8b1a227bb128c02e.png


目录
相关文章
|
Linux C语言
Linux These critical programs are missing or too old: compiler
Linux These critical programs are missing or too old: compiler
3502 0
Linux These critical programs are missing or too old: compiler
|
关系型数据库 MySQL Linux
Linux7部署 Mysql初始化报错GLIBC_2.28处理
Linux7部署 Mysql初始化报错GLIBC_2.28处理
2760 0
Linux7部署 Mysql初始化报错GLIBC_2.28处理
|
12月前
|
Android开发 Windows
Android studio 报错Connect to 127.0.0.1:8888 [/127.0.0.1] failed: Connection refused: connect(已解决)
这是一篇关于解决Android Studio报错“Connect to 127.0.0.1:8888 failed: Connection refused”的文章。问题通常因系统代理设置被Android Studio自动保存导致。解决方法是找到系统中Android Studio使用的gradle.properties文件(位于Windows的C:\Users\你的电脑用户名\.gradle或Mac的/Users/.{你的用户目录}/.gradle),删除或注释掉多余的代理配置后保存并重新Sync项目。希望此经验能帮助快速解决同类问题!
2395 36
|
关系型数据库 MySQL
MySQL高可用之MHA架构企业实战
MHA目前在MySQL高可用方面是一个相对成熟的解决方案,最近客户需求,特分享部署方案给大家
936 1
MySQL高可用之MHA架构企业实战
|
SQL 分布式计算 Java
Linux上部署Web项目
Linux上部署Web项目
425 0
Linux上部署Web项目
|
6天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
2870 10
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
13天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
3465 12
|
16天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
3551 25
|
10天前
|
人工智能 Linux BI
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
JeecgBoot AI专题研究 一键脚本:Claude Code + JeecgBoot Skills + DeepSeek 全平台接入 一行命令装好 Claude Code + JeecgBoot Skills + DeepSeek 接入,无需翻墙使用 Claude Code,支持 Wind
2700 6
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek