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就是随时跟踪日志