在开始之前我们先来介绍一下docker,Docker是一个开源的应用容器引擎,它允许开发者将应用及其依赖打包到可移植的容器中,然后发布到任何流行的Linux或Windows操作系统上。Docker的核心功能包括虚拟化,通过使用沙箱机制,容器之间完全隔离,没有相互干扰。Docker容器轻量且性能开销低,使得它们非常适合用于快速迭代应用程序、便捷部署和扩展以及简化应用程序的部署和管理。
docker官网:
docker镜像官网(在国外,有梯子才可以访问,我的是用阿里云提供的仓库)
我们来根据以下图片来对docker的执行原理来进行分析
1.docker镜像仓库
1.位于我们右手边第一张的图片,有一个鲸鱼背着集装箱,这就是docke的镜像仓库,里面有很多官方提供的镜像,比如说nginx,mysql,tomcat,redis等等。。。都是这些应用官方都已经给我们提供好了我们拿下来用就行
2,中间虚线连接集装箱(container)的,是每一个对应的容器,images是你本地下载的镜像部分,链接docker daemon的是docker的一些的指令,比如说docker pull nginx,就是从官网把这个nginx镜像拉到本地,docker run nginx ...去创建这个容器
2.Docker运行底层逻辑解析
首先我们通过docker pull,然后指定我们要拉的应用,比如说mysql,那就是docker pull mysql,那么这行指令呢就会将官网上的my sql的镜像给拉到本地来(images),我们可以通过docker run,去运行创建这个mysql容器,那么它的好处是什么,它每一个集装箱就等同于是一个单独的虚拟机,我们想,当我们在部署一个项目的时候,我们这一台虚拟机所依赖的jdk或者一些其他软件(版本),他都是安装在主机的,那如果另外来一台不同的应用那我是不是又得给他去配环境还要去给他安装其他版本的软件,而且这个不划算呀我们想我们一台服务器上我就单单部署这一个应用跑他是不是也太浪费资源了吧,但是用docker就不同了, docker它每一个集装箱里面所部署的每一台应用它都是相当于一台虚拟机,而且它所依赖的资源CPU啊这些都没有那么高,而且如果出问题了,我们只需要把这个容器给他删掉就好了,重新给他部署就行,这就是docker的好处
3.安装Docker
docker安装其实很简单,只需要执行指令他就会自动的去帮你下载docker,但是你得去配置镜像源,因为hub.docker,是在国外,所以我们要去配置我们国内(阿里云)的镜像下载地址,下载会很快
1.安装需要的安装包
yum install -y yum-utils
2.配置阿里云的镜像仓库地址
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装docker相关的一些引擎
yum makecache fase
4.安装docker
yum install docker-ce docker-ce-cli containerd.io
5.查看docker安装是否成功
docker -v
效果:
[root@localhost ~]# docker -v
Docker version 26.1.1, build 4cf5afa
6.启动,停止,重启docker命令
--启动命令
systemctl start docker
--停止docker
systemctl stop docker--重启
systemctl restart docker--设置开机自启
systemctl enable docker--执行docker ps,不报错启动成功
docker ps
7、查看dockers是否启动
docker version
8、拉一个hello-world,测试是否能成功下载镜像
docker run hello-world
9,docker images,查看本机拉过来的所以镜像(全部镜像都会在这里)
docker images
卸载docker
#卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
11.#删除资源
rm -rf /var/lib/docker
/var/lib/docker 为docker默认的工作路径!
4.配置自己的阿里云(免费的)
阿里云官网:https://account.aliyun.com/
1.找到容器镜像服务 ACR
2.找到你自己的镜像加速器(每个人都不一样,大家用自己的就好了,复制过来执行)
到这里docker就安装好了,现在我们来部署一个nginx练习练习
5.部署nginx容器
1.拉到本地
docker pull nginx
2.部署nginx容器
docker run --name nginx2 -p 9090:80 -d nginx
解释:
docker run:创建nginx容器
--name : 容器名字
-p:端口,9090端口映射到默认的80端口
-d : 镜像名称(官网的)可以在后面指定版本,默认最新版
3.启动容器
docker start nginx2
关闭容器是:
docker stop nginx2
4.查看启动的容器
docker ps 有你刚刚这个启动的nginx2就成功了
5.访问
--查看主机的ip地址
ip addr 一般是192.168.21.144(144或者其他的)
访问是你的主机IP地址加你映射的端口,我这里是 192.168.21.144:9090,访问成功
6.docker中常用指令(多练习练习)
docker push :上传镜像
docker pull:拉取镜像
docker images :查看镜像
docker rmi :删除镜像
docker run : 创建镜像
docker stop :停止容器
systemctl restart docker(启动不了用这个用)
docker start :启动容器
docker logs : 查看日志
docker exec -it mysql bash :进入容器
docker save -o nginx.tar nginx:latest(版本)
把他打成一个tar包
docker rmi nginx:latest(版本)
删除镜像
docker load --help
--help帮助
--解压镜像
docker load -i nginx.tar
运行nginx
docker run -d --name nginx -p 8080:8080 nginx
docker logs -f :持续输出日志
docker rm 名字 -f :强制删除
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
关闭设置的端口
firewall -cmd --reload
刷新对外开放端口
好拉,今天就先分享到这里啦,不要忘了点赞和关注哦我会在之后出更多的教程哦