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

Posted IT邦德

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了六脉连环大总结,教你干趴Docker相关的知识,希望对你有一定的参考价值。

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
擅长主流数据Oracle、mysql、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

前言

以下为本人当年初学Docker时做的笔记,一直在更新中,囊括了基本的知识点,有时还翻出来查查, 是不是干货,就看亲们了。

⛳️ 1.什么是Docker?

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

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

✨ 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

✨ 5.2 镜像的备份

[root@jeames ~]# docker save -o myredis.tar myredis
默认放到当前目录
[root@jeames ~]# ll
[root@jeames ~]# pwd

✨ 5.3 恢复过程

##删除容器
docker ps --format “table .ID\\t.Names\\t.Status”
docker stop myredis
docker rm myredis
##删除镜像
docker images
docker rmi myredis

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

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

✨ 6.1.拉取私有仓库镜像

[root@jeames ~]# docker pull registry
Using default tag: latest

✨ 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”

访问网址: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

[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

大家点赞、收藏、关注、评论啦 👇🏻👇🏻👇🏻微信公众号👇🏻👇🏻👇🏻

以上是关于六脉连环大总结,教你干趴Docker的主要内容,如果未能解决你的问题,请参考以下文章

Oracle夺命连环25问,你能坚持第几问?

MySQL八股文连环45问,你能坚持第几问?

教你使用ProtoBuf,通过gRPC服务在Android上进行网络请求

建设数据仓库之六脉神剑

百度微服务架构师随手笔记:教你如何手写Docker

万字总结 MySQL核心知识,赠送25连环炮