docker是什么
docker是一个开源的应用容器引擎,能够允许开发者将其部署的代码打包成镜像,并允许用户将其部署到自己的设备,比如Windows、linux或者虚拟环境中,在这个容器中所部署的镜像是沙箱机制,对一个镜像操作理论上不会影响其他板块的镜像。
萌萌哒的docker图标
按照我的理解,docker是一个大盒子,盒子里面用木板划分为几个小块,每个小块里面可以放不同口味的巧克力,在控制变量情况下,吃了白巧克力并不会影响其他块的巧克力(除了再偷偷把块2的巧克力也吃了~)
块1 | 块2 | 块3 |
---|---|---|
白巧克力 | 黑巧克力 | 夹心巧克力 |
巧克力吃完了怎么办?哈哈,这个问题不用担心。因为这个盒子有专门的巧克力厂(仓库respository),每位生产者(作者author)会把生产好的巧克力放到这个工厂,当盒子发送请求添加巧克力需求时工厂就会把做好的巧克力发到到盒子。
docker部署范围
根据我两个多月不成熟的学习和体验,docker主要有以下几种环境可部署:
- 实体机(windows、linux、mac、安卓temmux终端)
- 虚拟机(window、Linux、ubuntu)
- 群晖
- …
docker常用命令
安装命令
容器命令
docker命令
常规命令
启动、停止、重启、状态、开机启动 docker
查看docker所占空间情况
查看镜像/容器/数据卷所占的空间
信息类
镜像命令
查看本地镜像
OPTIONS参数
参数 | 解释 |
---|---|
-a | 列出本地所有的镜像(含历史映像层) |
-q | 只显示镜像ID |
搜索镜像
OPTIONS参数
参数 | 解释 |
---|---|
--limit | 列出N个镜像 |
获取镜像
不跟tag参数默认下载最新版本
删除镜像
1、删除单个镜像
2、删除多个镜像
3、删除全部
容器命令
新建和启动容器
OPTIONS
参数 | 解释 |
---|---|
--name | 为容器指定一个名称 |
-d | 后台运行容器并返回容器ID,也即启动守护式容器(后台运行) |
-i | 交互模式运行容器 |
-t | 为容器重新分配一个伪输入终端 |
-P | 随机端口映射,大写P |
-p | 指定端口映射,小写p |
🌰🌰 端口映射
参数 | 解释 |
---|---|
-p hostPort:containerPort | 映射主机端口到容器端口 |
-p ip:hostPort:containerPort | 指定主机的ip和端口映射到容器端口 |
-p ip::containerPort | 随机映射主机端口到容器端口 |
-p hostPort:containerPort:udp | 指定映射端口的协议 |
-p 80:80 -p 443:443 | 指定多个映射 |
🌰🌰 交互模式
- -i: 交互式操作
- -t: 终端
- centos : centos 镜像
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
- 要退出终端,直接输入 exit:
查看容器
参数 | 解释 |
---|---|
-a | 列出当前所有正在运行的容器+历史上运行过的 |
-n | 显示最近创建的容器 |
-l | 显示最近n个创建的容器 |
-q | 静默模式,只显示容器编号 |
不跟OPTIONS参数,默认是查看正在运行的容器
退出容器
- exit:run进去容器,exit退出,容器停止
- ctrl+p+q:run进去容器,ctrl+p+q退出,容器不停止
启动容器
重启容器
停止容器
1、正常停止
2、强制停止
删除容器
1、删除一个容器
2、删除多个容器
或者
查看日志
查看容器内进程
查看容器元信息
拷贝文件
1、从容器到主机
2、从主机到容器
导入和导出容器
1、导出(打包容器):export
2、import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
评论区