视频教程:
帮助命令
docker version #显示docker的详细信息docker info #显示docker的系统信息,包括镜像和容器的数量docker 命令 --help #帮助命令
帮助文档的地址:https://docs.docker.com/engine/reference/commandline/
(以下图片均使用kali系统)
1、镜像命令
docker images 查看所有本地的主机上的镜像
┌──(root㉿kali)-[~]└─# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest feb5d9fea6a5 12 months ago 13.3kB# 解释REPOSITORY 镜像的仓库源TAG 版本标签信息IMAGE ID 镜像的idCREATED 镜像的创建时间SIZE 镜像的大小# 可选项-a, --all # 列出所有镜像-q, --quiet # 只列出镜像的id
docker search 搜索镜像
┌──(root㉿kali)-[~]└─# docker search mysqlNAME DESCRIPTION STARS OFFICIAL AUTOMATEDmysql MySQL is a widely used, open-source relation… 13234 [OK]mariadb MariaDB Server is a high performing open sou… 5062 [OK]phpmyadmin phpMyAdmin - A web interface for MySQL and M… 640 [OK]percona Percona Server is a fork of the MySQL relati… 588 [OK]...# 可选项,通过收藏来过滤--filter=STARS=5000 #搜索出来的镜像就是STARS大于3000的┌──(root㉿kali)-[~]└─# docker search mysql --filter=STARS=5000NAME DESCRIPTION STARS OFFICIAL AUTOMATEDmysql MySQL is a widely used, open-source relation… 13234 [OK]mariadb MariaDB Server is a high performing open sou… 5062 [OK]
docker pull 下载镜像
# 下载镜像 docker pull 镜像名[:tag]
不是很想下,截一下老师的图哈哈哈
docker rmi 删除镜像
┌──(root㉿kali)-[~]└─# docker rmi -f 镜像id #1.删除指定的镜像id┌──(root㉿kali)-[~]└─# docker rmi -f 镜像id 镜像id 镜像id #2.删除多个镜像id┌──(root㉿kali)-[~]└─# docker rmi -f $(docker images -aq) #3.删除全部的镜像id
2、容器命令
说明:我们有了镜像才可以创建容器,linux
下载一个centos镜像来测试学习
docker pull centos
新建容器并启动
docker run [可选参数] image#参数说明--name="Name" 容器名字 tomcat01,tomcat02,用来区分容器--d 后台方式运行-it 使用交互方式运行,进入容器查看内容-p 指定容器的端口 -p 8080:8080 -p ip:主机端口:容器端口-p 主机端口:容器端口(常用)-p 容器端口容器端口-P 随机指定端口# 测试,启动并进入容器┌──(root㉿kali)-[~]└─# docker run -it centos /bin/bash[root@93c15a60f187 /]# ls #查看容器内的centos,基础版本,很多命令不完善bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var# 从容器中退回主机[root@93c15a60f187 /]# exitexit┌──(root㉿kali)-[~]└─#
列出所有的运行的容器
退出容器
exit # 直接容器停止并退出Ctrl + P + Q # 容器不停止退出
删除容器
docker rm 容器id # 删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -fdocker rm -f $(docker ps -aq) # 删除所有的容器docker ps -a -q|xargs docker rm # 删除所有的容器
启动和停止容器的操作
docker start 容器id # 启动容器docker restart 容器id # 重启容器docker stop 容器id # 停止当前正在运行的容器docker kill 容器id # 强制停止当前容器
测试收尾工作(可有可无)
?遇到的问题
1、如何进入正在运行的容器
因为正在运行的容器无法通过容器id删除,所以衍生出了这个问题
解决方法1:使用docker exec
docker exec 相当于进入容器并开启一个新的终端,可以在里面操作。
如果使用exit退出,容器也不会停止。
帮助信息:
注意:因为exec是开始一个新终端,所以COMMAND是必填项,不能省略。
常用命令(其中容器id是你docker中正在运行的容器id):
docker exec -it 容器id /bin/bash
解决方法2:使用docker attach
docker attach 进入容器正在执行的终端,不会启动新的进程。
如果使用exit退出,容器会停止运行!
如果想退出容器但不想容器停止,则按住Ctrl+P+Q退出
帮助信息:
注意:可以很清楚得看到attach命令后面可以直接接容器id即可
常用命令(其中容器id是你docker中正在运行的容器id):
docker attach 容器id
结果:
使用docker import直接导入并重命名
操作步骤
导入镜像并重命名
适用于从容器文件系统(如.tar文件)导入镜像,并指定新名称。bash复制docker import <文件路径或URL> <新镜像名>:<标签>
示例:
bash复制# 从本地文件导入并重命名为myapp:v1docker import /path/to/container.tar myapp:v1# 从URL导入并重命名docker import http://example.com/container.tar myapp:latest
验证结果
bash复制docker images | grep myapp
输出示例:
REPOSITORY TAG IMAGE ID CREATED SIZE myapp v1 abc123456789 2 minutes ago 100MB
先docker load再docker tag重命名
操作步骤
加载镜像文件
适用于从docker save导出的镜像文件(包含完整镜像历史)导入后重命名。bash复制docker load -i <镜像文件.tar>
示例:
bash复制docker load -i ubuntu_latest.tar
输出示例:
Loaded image: ubuntu:latest
查看已加载的镜像
bash复制docker images
输出示例:
REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest def567890123 3 weeks ago 72.9MB
重命名镜像
bash复制docker tag <原镜像名>:<标签> <新镜像名>:<标签>
示例:
bash复制docker tag ubuntu:latest myubuntu:v1
验证结果
bash复制docker images | grep myubuntu
输出示例:
REPOSITORY TAG IMAGE ID CREATED SIZE myubuntu v1 def567890123 3 weeks ago 72.9MB
关键区别与注意事项
docker import vs docker load
| 特性 | docker import | docker load |
|---|---|---|
| 数据来源 | 容器文件系统(.tar) | docker save导出的镜像文件 |
| 历史层保留 | 不保留历史层 | 保留完整历史层 |
| 适用场景 | 单次导入 | 镜像迁移或备份 |
重命名原理
docker tag实际是创建新标签指向同一镜像ID,原镜像仍存在(需手动删除)
。
清理旧镜像
重命名后,可通过以下命令删除原镜像:
bash复制docker rmi ubuntu:latest
完整操作流程示例
bash复制# 导出镜像(示例:从另一台机器导出)docker save ubuntu:latest > ubuntu_latest.tar# 传输文件到目标机器后加载docker load -i ubuntu_latest.tar# 重命名为新名称docker tag ubuntu:latest myrepo/ubuntu:v1# 验证并清理docker images | grep myrepodocker rmi ubuntu:latest # 可选:删除原镜像











