day101
- 一.使用doker镜像
- 使用inspect命令查看详细信息
- 使用 history 命令查看镜像历史
- 清理镜像
- 基于容器保存
- 基于本地模板导入
- 二.使用docker容器
- 创建容器
- 查看容器列表
- 进入容器
- 导出容器为镜像[export]
- 导入镜像[import]
- 导出镜像为镜像压缩包(save)
- 导入镜像
一.使用doker镜像
使用inspect命令查看详细信息
docker inspect 参数
使用 docker inspect 命令获取镜像的详细信息,包括 PID、作者、架构等等。
docker容器中至少有一个应用程序运行在前台
使用 history 命令查看镜像历史
docker history 参数
清理镜像
docker image prune [参数]
-a : 删除所有未被使用到的镜像
-f : 强制删除
基于容器保存
docker commit 参数[新的镜像名称]
-a : 指定维护者
-m : 简介
-p : 当保存容器时,容器暂停运行
启动一个容器,修改并保存
基于本地模板导入
用户也可以将保存的镜像传到另一台机器上,另一台机器就可以直接导入
[root@alvin-test-os ~]# cat ubuntu-18.04-x86_64-minimal.tar.gz | docker import -ubuntu:18.04
二.使用docker容器
容器启动参数
-d | 以守护进程方式运行 |
-p | 指定映射端口 |
-P | 随机映射端口 |
-i | 保持标准输入打开 |
-t | 分配一个伪终端 |
-v | 设置挂载文件到主机上 |
–rm | 当容器关闭时自动删除 |
–name | 为启动的容器设置一个名字 |
–network | 指定使用哪个网络 |
-e | 设置容器中的环境变量 |
–link | 链接到另一个容器 |
-h | 指定容器内的主机名 |
docker中对外提供服务的实例
创建容器
docker run 参数 [命令]
特点:
1.检查本地是否有所需镜像(如果没有,立即去相应的镜像仓库下载)
2:根据参数启动
参数:
-d:以守护进程的方式运行一个容器
docker run -d nginx:1.19.5
-name:指定一个容器的名称(将名称加入到Docker DNS当中)
docker run --name nginx -d nginx:1.19.5
-p(小写):指定固定端口映射[宿主主机端口号:容器内部端口号]
docker run -d -p 8099:80 nginx:1.19.5
-P(大写):指定随机端口映射
docker run -d -P nginx:1.19.5
-v:挂载存储卷
docker run -d -v [宿主主机的目录]:容器内的目录[启动命令]
--rm:当一个容器的生命周期结束时,立即删除该容器
docker run -d --rm[镜像名称或ID]
-e:在容器内设置一个环境变量
docker run -d -e NGINX_VERSION=1.19.5000 nginx:1.19.5
docker run -d -P -e MYSQL_ROOT_PASSWORD=123456
mysql:latest
-i : 打开标准输出
-t : 创建一个伪终端
docker run -it centos bash
查看容器列表
docker ps (默认查询的是当前系统正在运行的容器)
-a : 显示搜索的容器(包括已停止的容器)
-q : 只显示容器ID
进入容器
docker exec -it [容器ID] bash
导出容器为镜像[export]
docker export [容器ID|容器名称] > [压缩包名称]
docker export nginx_name > nginx.tar
导入镜像[import]
docker import [压缩包名称] 镜像名称(自定义)
docker import nginx.tar test/nginx:v1
### ===========================
docker export 和 docker import 区别?
docker export导出的是压缩包
docker import导出为镜像
导出镜像为镜像压缩包(save)
docker save [镜像id | 镜像名称] > [压缩包名称]
docker save test/nginx:v2 > test_nginx.tar
参数:
-o : 指定在一个压缩包内保存多个镜像
导入镜像
docker load < [镜像压缩包]
docker load -i [镜像压缩包]
save和load 与 export和import 区别?
1、save保存比较完整,export仅仅保存镜像。
2、save保存的体积大于export保存的体积
3、import可以重命名,load不能重命名
4、save可以保存多个镜像,export只能保存一个容器。
save和export 使用场景?
1、打包镜像一般用save, 打包容器一般用export
2、需要构建历史信息的,可以使用save。