目录
一 Docker简介
1.1 是什么
Docker是一个开源的应用容器引擎,它基于Go语言实现,并利用操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化。Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,实现应用的“一次封装,到处运行”的目的,实在不理解,可以把它当成一个VM,在VM中又安装了一个VM第二个的这个VM就是Docker
生活列子来熟悉Docker
想象一下,你想要做一顿晚餐,比如意大利面。为了做这顿饭,你需要准备面条、番茄酱、洋葱、大蒜和一些调料。在传统的方式中,你可能需要分别购买这些食材,然后在厨房里手动准备它们。
现在,如果我们将这个过程与Docker进行比较:
- Docker主机:这就像你的厨房。它提供了制作意大利面所需的基础设施和环境。
- Docker镜像:这就像是食谱或预制的意大利面配料包。它包含了制作意大利面所需的所有食材和步骤。
- Docker容器:这就像是按照食谱实际制作出来的意大利面。一旦你有了镜像(食谱),你就可以创建一个容器(开始做饭),然后在这个容器里实际制作意大利面。
- Docker仓库:这就像超市的货架,上面摆放着各种各样的食谱或配料包。你可以从仓库中选择你想要的镜像,然后将其下载到你的Docker主机上。
使用该Docker好处之一,就是你可以很容易地分享你的“意大利面”配方(镜像)。例如,你可以将你的镜像上传到Docker仓库,然后你的朋友或家人就可以很容易地下载并在他们自己的Docker主机上制作同样的意大利面
1.2 优缺点
优点
1.3 应用场景
1.4 安装
执行上方命令安装无误的话,差不多就成功了
进入docker:cd /etc/docker
配置我们的镜像,先进入阿里云官方: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
如果没有账户的话,先注册再登入,再回到docker文件下
输入编辑命令:vim daemon.json
将阿里源进行配置(下图括号里面的)
使用命令进行生效
这时候,就算安装好啦!
二 命令
2.1 Docker基本命令
2.2 Docker镜像命令
下方图拉取(下载)mysql
命令:docker pull mysql
查看当前服务器已下载的:docker images
删除:docker rmi IMAGE ID或名称
强制删除:docker rmi -f IMAGE ID或名称
2.3 Docker容器命令
为了测试,在Linux的Centos7中再安装一个Centos7
命令:docker pull centos:7
这时候下载的centos7为一个容器
我们可以去启动它
创建一个容器并进入该容器: docker run -it --name mycentos02 IMAGE ID
解释:
-
docker run
: 这是Docker命令的基础,用于从镜像启动新容器。
-it
: 这是两个标志的组合。
-i
或--interactive
: 保持容器的标准输入(STDIN)开启,即使不连接到容器。-t
或--tty
: 为容器分配一个伪终端(pseudo-TTY),通常用于交互式会话-
--name mycentos02
: 这个标志用于给新创建的容器指定一个名称。在这个例子中,容器的名称是mycentos02
。如果不指定这个标志,Docker会自动为容器生成一个名称。 -
IMAGE ID
: 这是你想要从中创建容器的Docker镜像的标识符。通常,你会使用docker images
命令来查看可用的镜像及其ID,然后选择你想要使用的镜像的ID
综合起来,docker run -it --name mycentos02 IMAGE ID
命令会创建一个名为mycentos02
的新容器,该容器基于指定的镜像ID,并且具有交互性和伪终端。一旦容器启动,你就可以通过控制台与容器中的进程进行交互(切换版本),如下图
创建容器但不进入容器:docker run -di --name mycentos03 IMAGE ID
退出不停止容器:Ctrl+p+q
退出并停止容器:exit
查看活的容器:docker ps
查看全部的容器:docker ps -a
强制删除一个运行的容器:docker rm -f IMAGE ID或名称
重启容器:docker restart mycontainer
查看容器日志:cd /var/lib/docker/containers
最后得出,相同的两个Centos7容器不同的文件,存着一种隔离的状态,如下