一、docker概念
Docker 引擎是使用的是Linux内核特性的容器引擎。
二、docker的安装
1.docker,下载地址:
桌面版:Docker Desktop: The #1 Containerization Tool for Developers | Docker
服务器版:Install Docker Engine | Docker Docs
2.如遇运行报错:
报错内容:
解决方法:
控制面板->程序->启用或关闭 windows 功能,开启 Windows 虚拟化和 Linux 子系统(WSL2)
3.命令行安装 Linux 内核
wsl.exe --install -d Ubuntu
上面命令很可能你安装不了,微软商店你也可能打不开,如果遇到这个问题,参考:https://blog.csdn.net/qq_42220935/article/details/104714114
4.设置开机启动 Hypervisor
bcdedit /set hypervisorlaunchtype auto
注意:要用管理员权限打开 PowerShell
5.设置默认使用版本2
wsl.exe --set-default-version 2
6.查看 WSL 是否安装正确
wsl.exe --list --verbose
出现ubunt系统则证明安装完成
出现下图错误,点击链接安装最新版本的 WSL2
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
7.镜像加速源
镜像加速器 | 镜像加速器地址 |
---|---|
Docker 中国官方镜像 | https://registry.docker-cn.com |
DaoCloud 镜像站 | http://f1361db2.m.daocloud.io |
Azure 中国镜像 | https://dockerhub.azk8s.cn |
科大镜像站 | https://docker.mirrors.ustc.edu.cn |
阿里云 | https://ud6340vz.mirror.aliyuncs.com |
七牛云 | https://reg-mirror.qiniu.com |
网易云 | https://hub-mirror.c.163.com |
腾讯云 | https://mirror.ccs.tencentyun.com |
"registry-mirrors": ["https://registry.docker-cn.com"]
三、docker的常用操作命令
1.容器
1.查看容器
//命令:
docker ps [OPTIONS]
OPTIONS说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
2.查看容器日志
//命令:
docker logs [OPTIONS] CONTAINER_ID
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
3.杀死正在执行的容器
//杀死某个容器命令:
//杀死所有容器命令:
4.删除容器
//删除某个容器命令:
//删除所有容器命令:
4.容器启动、关闭、重启
//容器启动
//容器关闭
//容器重启
5.创建容器
虽然docker 有docker create方法的,这样就是创建一个容器,并不会运行,run相当于create+start,新版docker推荐使用run
//创建容器命令 docker run [options] 镜像名称:镜像标签(可以用docker image查看)
docker run [OPTIONS] REPOSITORY:TAG
Options:
-i:表示创建并运行容器
-t:表示容器启动后会进入其命令行。通常于-i一起使用:-it表示创建并运行容器,且运行之后自动进入为当前应用打开一个默认终端
--name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行,与-t相反。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口,程序访问是通过宿主机映射端口来访问容器的。可以使用多个-p做多个端口映射。
-e:表示添加容器的环境变量。
--rm:让容器在退出时,自动清除挂在的卷,以便清除数据。等价于在容器退出后,执行docker rm -v。
6.拷贝容器文件
//把宿主机的文件拷贝到容器里
docker cp 需要拷贝的文件或目录 容器名称:容器目录
//从容器中拷贝文件到宿主机
7.查看容器的数据
8.将容器保存为镜像
9.容器备份
docker save –o 打包的后的文件名.tar 镜像名
10.容器恢复
docker load –i 你的备份镜像tar包
11.监控容器占用资源
docker stats
//默认情况下,stats 命令会每隔 1 秒钟刷新一次输出的内容直到你按下 ctrl + c。下面是输出的主要内容:
[CONTAINER]:以短格式显示容器的 ID。
[CPU %]:CPU 的使用情况。
[MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存。
[MEM %]:以百分比的形式显示内存使用情况。
[NET I/O]:网络 I/O 数据。
[BLOCK I/O]:磁盘 I/O 数据。
[PIDS]:PID 号。
12.导出容器
docker export [OPTIONS] CONTAINER
OPTIONS说明:
-o :将输入内容写到文件。
示例:docker export -o export123.tar a404c6c174a2
2.镜像
1.查看镜像
docker image
//字段说明:
REPOSITORY:镜像名称
TAG:镜像标签
IMAGE ID:镜像ID
CREATED:镜像的创建日期
SIZE:镜像大小
2.删除镜像
//删除单个镜像
docker rmi [options?] 镜像ID
//删除全部镜像
docker rmi [options?] $(docker images -q)
[Options]
-f 强制删除
3.检索镜像
docker search 镜像名
4.拉取镜像
docker pull 镜像名:版本
//示例 redis最新版
docker pull redis:latest //latest 表示最新版
5.制作镜像
docker build -t 镜像名 . //注意:最后有个 . 表示使用当前目录的Dockerfile构建;
6.将镜像保存为归档文件
docker save [OPTIONS] IMAGE [TAG]
OPTIONS 说明:
-o :输出到的文件。
//示例:
docker save -o my_golang_latest.tar mygolang:latest
7.从归档文件创建镜像
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
OPTIONS说明:-c :应用docker 指令创建镜像;
-m :提交时的说明文字;
//示例
docker import my_golang_latest.tar mygolang:latest
8.从归档文件导入镜像
docker load [OPTIONS]
OPTIONS 说明:--input , -i : 指定导入的文件,代替 STDIN。
--quiet , -q : 精简输出信息。
//示例
docker load --input my_golang_latest.tar
注意:docker 可以使用docker load命令来导入镜像库存储文件到本地镜像库,也可以使用docker import命令来导入一个容器快照到本地镜像库。
两者的区别在于容器快照将会丢弃所有的历史记录和元数据信息,而镜像存储文件将保存完整记录,体积也会更大。此外从容器快照文件导入时,也可以重新指定标签等元数据。
9.修改镜像的tag和name
docker tag 9aed1ced115f imagename:1.0.4
10.清理Build缓存
docker builder prune
借鉴文章地址:
Docker常用命令_docker -p-CSDN博客