docker 初学
docker学习
特殊情况
今天返校,整理行李、清理卫生、晒被子,花了好久时间,简直累死了,最糟糕的事情是,洗衣机里面脏死人了,我平白无故花了7块钱洗了三件衣服。。。好不容易到了晚上可以稍微休息,但是因为换宿舍,换的宿舍的那个宿舍里面的朋友回来了,于是又收拾东西,把一些东西搬到了另一个宿舍,来来回回一直到晚上十点半我才有时间坐下。
学习内容
今天学习了docker
不过时间不够加上我有点累,所以今天仅仅只学习了一点点,以下为我的学习内容:
首先我们得知道docker是什么。
我们不讨论具体的技术细节,首先了解简单的内容: docker简单来说就是用容器化技术给应用程序封装了一个独立的运行环境,每个运行环境就是一个容器;运行容器的计算机被称为宿主机。
docker与虚拟机最大不同就在一docker与宿主机共用一个系统内核。

这也就证明了docker的轻量化,远超虚拟机
镜像: 镜像是容器的模板 打个比方,镜像相当于软件安装包;容器就相当于软件,我们可以通过镜像去安装容器 (Docker Registry:镜像仓库)
docker的运行环境
docker是基于Linux的容器化技术,我现在使用的是windows电脑,所以我是在wsl上面下载Ubuntu来运行的

清楚了运行环境,接下来就是命令了
Docker 命令
docker pull 用来从仓库下载镜像
eg. docker pull docker.io/library/nyinx:latest
docker.io:这部分是docker仓库注册表地址(registry:仓库地址)
library: namespace 命名空间(作者名) linrary是官方的公库命名
nyinx:latest : 这部分是tag 标签(版本号)
一个形象的例子: docker 下载 应用商店 / 发行商 / 软件:版本号
其中 docker.io 是一个registry:仓库地址/注册表 而docker.io/library/nyinx:latest 则是一个repositiry: 镜像库(存放一个镜像不同版本)

由于docker在各种宿主器里面都可运行,所以我们下载的时候会需要注意cpu的框架
我们可以使用docker pull --platform=xxxx nginx
如果不进行设置则会默认最合适的。
docker images 列出所有下载的docker镜像

docker rmi ID 删除镜像
同样是删除的命令还有
rm 删除容器 如果是一个正在运行的容器,可以添加-f强制删除

docker run xxxx 使用镜像创建运行容器

但是这样的话会导致这个容器一直占着命令框
所以我们可以使用-d命令来分离,让容器后台执行

像这样就只会打印ID
docker ps 查询进程状况(ps:peocess status 进程状态)

其中 container ID :是每创建一个容器就会自动给一个不同的
image : 运行的镜像
names: 名字(一般不设定就会自动生成)
docekr run xxxx 如果运行的是没有下载的镜像,会自动下载最为适配的,不需要进行pull
宿主机和容器之间的网络是隔离的,默认无法从宿主机访问docker 如果我们想要容器在宿主机容器可以看见,那么我们需要通过端口映射来完成:
docker run -p xx:xx image
前面是宿主机 后面是容器。 通过-p吧容器端口映射到主机端口或者绑定。
docekr run -v 宿主机目录:容器目录 -v 是将宿主机的文件目录和容器内文件目录进行绑定。 这样两者可以相互进行文件的同步。但是刚开始链接会让主机覆盖容器,只需要重新按照目录启动容器就可以,指的是Windows上面通过浏览器观看wsl2里面的。 这种目录被称为挂载卷。
目前我学习到了当前的阶段,今天就是很简答的了解了一下docekr,然后了解了一下基础的命令,虽然有可视化的桌面应用,但是还是命令行更为好用,期待明天的学习,今天就到此为止。
哦,说一下实际运行的时候出现的一些问题,首先是docker的命令无法使用,原因是因为docekr需要在桌面应用上面开通wsl2的适配,开通后就可以成功跑通了,目前只遇见了这个问题。