文章目录
- 前言
- ⛳️ 1.什么是Docker?
- ⛳️ 2.Docker的应用场景有哪些?
- ⛳️ 3.Docker的优点有哪些?
- ⛳️ 4.Docker与虚拟机的区别是什么?
- ⛳️ 5.Docker的三大核心是什么?
- ⛳️ 6.如何快速安装Docker?
- ⛳️ 7.如何修改Docker的存储位置?
- ⛳️ 8.Docker镜像常用管理有哪些?
- ⛳️ 9.如何创建Docker容器?
- ⛳️ 10.Docker在后台的标准运行过程是什么?
- ⛳️ 11.Docker网络模式有哪些?
- ⛳️ 12.什么是Docker的数据卷
- ⛳️ 13.如何搭建Docker私有仓库
- ⛳️ 14.Docker如何迁移备份?
- ⛳️ 15. Docker如何部署MySQL?
前言
本文总结了Docker常见的问题和坑,采用问答的形式,分享给大家⛳️ 1.什么是Docker?
⛳️ 2.Docker的应用场景有哪些?
📢📢📢 在这里我重点介绍下Docker作为内部开发环境的场景
⛳️ 3.Docker的优点有哪些?
容器化越来越受欢迎,Docker的容器有点总结如下:
📖 灵活:即使是最复杂的应用也可以集装箱化。
📖 轻量级:容器利用并共享主机内核。
📖 可互换:可以即时部署更新和升级。
📖 便携式:可以在本地构建,部署到云,并在任何地方运行。
📖 可扩展:可以增加并白动分发容器副本。
📖 可堆叠:可以垂直和即时堆叠服务。
⛳️ 4.Docker与虚拟机的区别是什么?
⛳️ 5.Docker的三大核心是什么?
📢📢📢 镜像
📢📢📢 容器
📢📢📢 仓库
⛳️ 6.如何快速安装Docker?
⛳️ 7.如何修改Docker的存储位置?
📢📢📢 修改到其它目录
⛳️ 8.Docker镜像常用管理有哪些?
⛳️ 9.如何创建Docker容器?
#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 --查看系统版本
⛳️ 10.Docker在后台的标准运行过程是什么?
⛳️ 11.Docker网络模式有哪些?
📢📢📢 host模式
📢📢📢 container模式
📢📢📢 bridge 模式
⛳️ 12.什么是Docker的数据卷
⛳️ 13.如何搭建Docker私有仓库
1.拉取私有仓库镜像
[root@jeames ~]# docker pull registry
Using default tag: latest
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
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
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
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
⛳️ 14.Docker如何迁移备份?
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
2.镜像的备份
[root@jeames ~]# docker save -o myredis.tar myredis
默认放到当前目录
[root@jeames ~]# ll
[root@jeames ~]# pwd
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
⛳️ 15. Docker如何部署MySQL?
1.下载镜像
https://hub.docker.com/ 中搜索mysql
[root@jeames ~]# docker pull mysql:5.7.30
[root@jeames ~]# docker pull mysql:8.0.20
2.安装部署
2.1 创建容器
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
2.2 访问Mysql
##登陆容器
docker exec -it mysql5730 bash
mysql -uroot -proot
mysql> select user,host from mysql.user
##远程访问
mysql -uroot -proot -h192.168.59.220 -P3309