Docker技术学习

190 阅读3分钟

Docker技术学习

1. Docker、镜像、容器(container)分别是什么?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口。

容器: 容器是由镜像实例化而来,这和我们学习的面向对象的概念十分相似,我们可以把镜像看作类,把容器看作类实例化后的对象。也可以说镜像是文件, 容器是进程。 容器是基于镜像创建的, 即容器中的进程依赖于镜像中的文件, 这里的文件包括进程运行所需要的可执行文件, 依赖软件, 库文件, 配置文件等等...

镜像:docker 的镜像概念类似虚拟机的镜像。是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。

2. 下载Docker到mac电脑

直接去Docker官网进行下载。

Dokcer的官网是- docker.com

进入官网后,选择Products(产品),然后选择Docker Desktop,进入下载页面,点击进行下载。这个软件大概有520M左右,所以可能要下载一会(根据网速不同,)。

 docker version                --查看你的docker是否安装成功及版本信息

3. 下载Docker到Linux

 curl -fsSL get.docker.com -o get-docker.sh   --下载shell脚本
 sh get-docker.sh   --执行脚本安装Docker
 ​

4. Docker新增、删除 、查询、停止容器

4.1新增容器
 docker container run ngnix      --新增容器 ngnix代表容器的名字
4.2 停止容器
 docker container stop 容器标号id   --停止容器
4.3 查询容器
 docker container ps              -- 查询容器  如果添加-a代表启动的容器和未启动的都查询
 docker ps   --简写
 ​
 docker container ls               -- 查询容器

输入命令后,就会显示出当前已经存在的容器,并且会列出对应的信息。

  • CONTAINER ID : 容器对应的ID,这个是唯一的
  • IMAGE : 使用的镜像名称,显示不同
  • COMMAND : 执行的相关命令
  • CREATED: 创建的时间
  • STATUS: 目前镜像的状态,一般会有两种状态Up和Exited.
  • PORTS: 协议和端口
  • NAMES: 容器的名称,名字是Docker随机生成的
4.4 删除容器
 docker container rm 容器标号id   --删除容器

5 多容器操作和强制删除正在运行的容器

5.1 多容器操作
 docker container rm $(container ps -aq)  --找到所有容器id删除容器
5.2 容器的强制删除
 docker container rm 容器id -f    --强制删除正在运行的容器

6. [容器] attached 和detached模式

Docker端口映射

在开启端口映射之前,你首先要之道Docker对应的容器端口是多少。比如Nginx镜像的端口诗80。知道这个端口后,就可以在启动容器的时候,用-p <port:port> 的形式,启用映射了。

6.1 attached模式

第一个端口是映射到服务器本机的端口;第二个端口是Docker容器使用的端口。 比如你想把Docker的80端口,映射到服务器的90端口。

docker container run -p 90:80 nginx

两种模式最简单的对比理解就是:attached模式在前台运行,detached模式在后台运行。

6.2 detached模式

detached模式的开启方法,就是加一个参数-d或者--detach

docker run -d -p 80:80 nginx

这次你会看到,和attached模式不同的是,这次输入完命令后,只显示出了容器的编号,并且可以再输入任何命令。就算我们关掉窗口,容器依然运行,也就是他是在系统后台进行运行的。

6.3 detached模式转换attached模式
docker attach 容器id
6.4 detached模式查看日志的方法
docker container logs 容器id   --查看日志  如果加if就是随时跟踪日志