Docker基本使用方法和常用命令
😀前言
在当今软件开发与运维的快速发展中,容器化技术逐渐成为行业的核心趋势。作为其中的代表性工具,Docker 以其轻量级、可移植和高效的特性,正在深刻改变应用的构建、部署与交付方式。传统的软件开发往往面临环境不一致、资源浪费、迁移困难等问题,而 Docker 的出现为这些痛点提供了优雅的解决方案。
🏠个人主页:尘觉主页
文章目录
- 1. Docker平台基本使用方法
- 1.1 运行容器并加载镜像
- 常用参数
- 示例
- 1.2 容器后台运行的特点
- 2. Docker常用命令
- 查看 docker 命令帮助
- 查看 docker 版本信息
- 2.1 镜像操作
- 2.1.1 搜索镜像
- 2.1.2 下载镜像
- 2.1.3 上传镜像
- 2.1.4 查看镜像
- 2.1.5 查看镜像详细信息
- 2.1.6 删除镜像
- 2.1.7 清理未使用镜像
- 2.1.8 查看镜像历史
- 2.1.9 构建镜像
- 2.1.10 设置镜像标签
- 2.1.11 导出容器文件系统
- 2.1.12 导入容器文件系统创建镜像
- 2.1.13 保存镜像
- 2.1.14 加载镜像
- 2.2 容器操作
- 2.2.1 运行容器
- 常用参数说明
- 2.2.2 容器资源限制
- 内存限额
- CPU限额
- I/O限额
- 2.2.3 查看容器
- 2.2.4 启动容器
- 2.2.5 停止容器
- 2.2.6 重启容器
- 2.2.7 Kill容器
- 2.2.8 删除容器
- 2.2.9 容器日志
- 2.2.10 进入容器
- 2.2.11 拷贝文件
- 2.2.12 获取容器详细信息
- 2.2.13 查看容器进程
- 2.2.14 查看端口映射
- 2.2.15 容器资源使用统计
- 2.2.16 暂停容器
- 2.2.17 取消暂停
- 2.2.18 容器重命名
- 2.3 示例:运行 CentOS 镜像
- 😄总结
1. Docker平台基本使用方法
1.1 运行容器并加载镜像
运行一个 container 并加载镜像 centos
,运行起来后,在容器中执行 /bin/bash
:
# 下载和运行镜像并进入 bash
docker run -it centos /bin/bash
常用参数
参数 | 说明 |
---|---|
run | 运行容器 |
-i | 以交互模式运行容器,通常与 -t 一起使用 |
-t | 为容器分配伪终端,通常与 -i 一起使用 |
-d | 后台运行容器,并返回容器ID |
-c | 后面跟待执行的命令 |
示例
# 下载并运行 nginx 镜像
docker run -it nginx /bin/bash
1.2 容器后台运行的特点
- 如果容器没有永久运行的程序,终端退出(
exit
)后容器也会退出。 - 容器永久运行需要有前台运行的程序,并使用
docker run -d
后台启动。 - 常见坑:后台运行的容器必须有一个前台进程,否则 docker 会自动停止容器。
# 模拟后台服务,不断输出 hello world
docker run --name mycentos -d centos:7 /bin/bash -c "while true; do echo hello world; sleep 3; done"# 进入容器
docker exec -it mycentos /bin/bash# 查看容器日志
docker logs -tf --tail 10 mycentos
# -t 显示时间戳
# -f 实时跟踪日志
# --tail 显示最近日志条数
2. Docker常用命令
查看 docker 命令帮助
docker COMMAND --help
查看 docker 版本信息
docker version
docker info
2.1 镜像操作
2.1.1 搜索镜像
docker search mysql --filter=STARS=3000
2.1.2 下载镜像
# 下载指定版本
docker pull nginx:1.14.1# 下载最新版本
docker pull redis
2.1.3 上传镜像
docker push 镜像名[:tag]
2.1.4 查看镜像
docker images
docker images -a # 包含非活动镜像
docker images -q # 仅显示镜像ID
2.1.5 查看镜像详细信息
docker inspect 镜像名或镜像ID
2.1.6 删除镜像
docker rmi 镜像ID或镜像名[:tag]
docker rmi -f 镜像ID或镜像名[:tag] # 强制删除
docker rmi -f $(docker images -aq) # 删除所有镜像
2.1.7 清理未使用镜像
docker image prune
2.1.8 查看镜像历史
docker history 镜像ID或镜像名
2.1.9 构建镜像
docker build -f Dockerfile -t 镜像名:tag .
2.1.10 设置镜像标签
docker tag 源镜像:tag 目标镜像:tag
2.1.11 导出容器文件系统
docker export 容器ID > container.tar
2.1.12 导入容器文件系统创建镜像
docker import container.tar 镜像名:tag
2.1.13 保存镜像
docker image save nginx | gzip > nginx.tar.gz
2.1.14 加载镜像
docker image load -i nginx.tar.gz
docker load < nginx.tar.gz
2.2 容器操作
2.2.1 运行容器
# 进入 bash
docker run -p 80:8080 -it --name webserver webserver:1.1 /bin/bash# 后台运行
docker run -p 80:8080 -itd --name webserver webserver:1.1 /bin/bash# 后台运行并设置环境变量
docker run -p 80:8080 --name webserver -e project_name="webserver" -d webserver:1.1# 后台运行并指定网络
docker run -p 80:8080 --name webserver --network myweb -d webserver:1.1# 后台运行并映射目录
docker run -p 80:8080 --name webserver -v /search/webserver/logs:/search/webserver/logs -itd webserver:1.1 /bin/bash
常用参数说明
参数 | 说明 |
---|---|
–name | 指定容器名称 |
–ip | 指定容器IP(自定义网络) |
-i | 交互模式 |
-t | 分配伪终端 |
-p | 端口映射 |
-P | 映射所有 EXPOSE 端口 |
-d | 后台运行 |
-e | 设置环境变量 |
-h | 容器主机名 |
-v | 挂载宿主机目录 |
–mount | 附加文件系统 |
–net | 指定网络 |
–add-host | 写 /etc/hosts 文件 |
–rm | 容器退出自动删除 |
–privileged | 特权模式 |
–restart | 容器退出时的重启策略 |
2.2.2 容器资源限制
内存限额
docker run --name web1 -m 500m --memory-swap=600m --oom-kill-disable -d nginx
docker stats --no-stream web
CPU限额
docker run --name web1 --cpus="1.5" -d nginx
docker run --name web2 --cpus=".5" -d nginx
docker run -it --cpu-shares 512 centos /bin/bash
I/O限额
docker run -it --device-write-bps /dev/sda:30MB ubuntu
2.2.3 查看容器
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器
docker ps -q # 仅显示容器ID
docker ps -a -n=1 # 显示最近创建的容器
2.2.4 启动容器
docker start 容器ID或容器名称
2.2.5 停止容器
docker stop 容器ID或容器名称
docker stop $(docker ps -q) # 停止所有运行中的容器
2.2.6 重启容器
docker restart 容器ID或容器名称
2.2.7 Kill容器
docker kill 容器ID
2.2.8 删除容器
docker rm 容器ID
docker rm -f $(docker ps -aq) # 强制删除所有容器
2.2.9 容器日志
docker logs 容器ID或名称
docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
docker logs --since 30m CONTAINER_ID
docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID
2.2.10 进入容器
docker exec -it 容器ID /bin/bash # 新终端
docker attach 容器ID # 进入当前终端
2.2.11 拷贝文件
docker cp 本地路径 容器ID:容器路径
docker cp 容器ID:容器路径 本地路径
2.2.12 获取容器详细信息
docker inspect 容器ID
2.2.13 查看容器进程
docker top 容器ID
2.2.14 查看端口映射
docker port 容器ID
2.2.15 容器资源使用统计
docker stats 容器
2.2.16 暂停容器
docker pause 容器ID
2.2.17 取消暂停
docker unpause
2.2.18 容器重命名
docker rename 旧容器名 新容器名
2.3 示例:运行 CentOS 镜像
#下载镜像创建容器docker search centos
docker pull centos
交互式运行容器(-it)# 根据centos:latest镜像运行容器,并以交互式模式进入容器中,但exit退出之后,容器会自动销毁
docker run --name mycentos -it --net host centos:latest /bin/bash
# 实际上是在Docker容器中运行了一个精简版的CentOS系统
# 退出并关闭容器
exit
# 退出不关闭容器
Ctrl + P + Q
# 列出所有的容器
docker ps -a
docker start mycentos
docekr stop mycentos
docker rm mycentos
强制删除所有容器docker rm -f $(docker ps -aq)
2.守护式运行容器(-d)根据centos:latest镜像运行容器,并以守护式运行容器docker run --name mycentos --net host -d centos:latest
进入正在运行的容器中并开启一个交互模式的终端,可以在容器中执行操作(exit退出后容器不会销毁)docker exec -it mycentos /bin/bash
😄总结
😁热门专栏推荐
想学习vue的可以看看这个
java基础合集
数据库合集
redis合集
nginx合集
linux合集
手写机制
微服务组件
spring_尘觉
springMVC
mybits
等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持
🤔欢迎大家加入我的社区 尘觉社区
文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞