Docker部署与常用命令

目录

1.镜像和容器

2.Docker部署

3.Docker常用命令

一、镜像相关(image)

二、容器生命周期(container)

三、调试与进入容器

四、构建镜像(Dockerfile)

五、部署Nginx(例)

[1.拉取镜像docker pull nginx (默认版本最新)](#1.拉取镜像docker pull nginx (默认版本最新))

[2.查看当前所有镜像docker images](#2.查看当前所有镜像docker images)

[3.打包镜像 docker save -o nginx.tar nginx:latest](#3.打包镜像 docker save -o nginx.tar nginx:latest)

[4.还原镜像docker load -i nginx.tar​编辑](#4.还原镜像docker load -i nginx.tar编辑)

[5.创建运行容器 docker run -d --name nginx -p 80:80 nginx](#5.创建运行容器 docker run -d --name nginx -p 80:80 nginx)

[6.查看正在运行的容器列表 docker ps --format(按格式输出) -a(输出全部)](#6.查看正在运行的容器列表 docker ps --format(按格式输出) -a(输出全部))

4.命令别名

5.数据卷挂载

一:案例背景

二:数据卷概念

三:常用命令​

四:挂载

五:总结

6.本地目录挂载

7.自定义镜像

一:镜像结构

二:Dockerfile

8.网络


1.镜像和容器

Docker 把应用代码 + 运行时依赖(库、配置、系统工具) 打成一个镜像(Image),

镜像启动后变成容器(Container),容器之间进程级隔离秒级启停资源可限额 ,却共享宿主机内核,所以比虚拟机轻 10 倍、快 10 倍。

2.Docker部署

3.Docker常用命令

一、镜像相关(image)

命令 一句话作用 示例
docker pull 从远程仓库拉镜像到本地 docker pull nginx:1.25
docker push 把本地镜像推到远程仓库 docker push user/myapp:v1
docker images 查看本地已有镜像列表 docker images
docker rmi 删除本地镜像(rmi=remove image) docker rmi nginx:1.24
docker save 把镜像打成 tar 包,方便离线拷贝 docker save nginx:1.25 > ng.tar
docker load 把 tar 包还原成镜像 docker load < ng.tar

二、容器生命周期(container)

|----------------|----------------------|--------------------------------|
| docker run | 创建并启动一个容器(一次性命令) | docker run -d -p 80:80 nginx |
| docker start | 把已存在但停止的容器重新启动 | docker start my-nginx |
| docker stop | 优雅停止运行中的容器 | docker stop my-nginx |
| docker ps | 查看正在运行的容器列表 | docker ps |
| docker ps -a | 查看所有容器(含已停止) | docker ps -a |
| docker rm | 删除容器(rm=remove) | docker rm my-nginx |

三、调试与进入容器

|---------------|--------------------|---------------------------------|
| docker logs | 看容器控制台日志 | docker logs -f my-nginx |
| docker exec | 进入正在运行的容器里执行命令 | docker exec -it my-nginx bash |

四、构建镜像(Dockerfile)

命令 一句话作用 示例
docker build 用 Dockerfile 制作镜像 docker build -t user/myapp:v1 .

五、部署Nginx(例)

1.拉取镜像docker pull nginx (默认版本最新)

2.查看当前所有镜像docker images

IMAGE ID 是镜像唯一ID

3.打包镜像 docker save -o nginx.tar nginx:latest

|----------------|---------------------|
| docker save | 导出镜像(可理解为"镜像压缩") |
| -o nginx.tar | 指定输出文件名(o = output) |
| nginx:latest | 要导出的镜像(仓库:标签) |

4.还原镜像docker load -i nginx.tar

5.创建运行容器 docker run -d --name nginx -p 80:80 nginx

|----------------|---------------------------------------------------------------------|
| docker run | 创建并运行新容器 |
| -d | detached 模式,后台运行,不占用当前终端 |
| --name nginx | 给容器起个名字叫 nginx(好记,后续 docker stop nginx 就能操作) |
| -p 80:80 | 端口映射:主机端口:容器端口。这里把主机的 80 映射到容器的 80,浏览器访问 http://主机IP 就能进到 Nginx |
| nginx | 要使用的镜像名称(官方最新版) |

6.查看正在运行的容器列表 docker ps --format(按格式输出) -a(输出全部)

4.命令别名

vi /root/.bashrc 或者 ~/.bashrc 修改文件内容

自定义命令别名

source ~/.bashrc 让改动的配置立即生效

5.数据卷挂载

一:案例背景

docker exec -it nginx bash 进入nginx容器

cd /usr/share/nginx/html 进入html文件

发现ll指令和vi指令都找不到,无法在容器内修改指令

因为:镜像只包含程序执行的最小环境和配置。

二:数据卷概念

"数据卷就是 Docker 在宿主机上自动开辟的一块专属目录,容器启动时把它'挂靠'到容器里的某个路径,两边对同一块磁盘读写,实现数据持久化 + 实时共享。"

三:常用命令

四:挂载

必须在创建容器时挂载,创建时未挂载要删除容器重新创建挂载。

docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx

在创建容器时通过 -v html:/usr/share/nginx/html

把 Docker 数据卷 html 挂到容器里 Nginx 的网页根目录;卷不存在会自动创建

docker ps 查看运行中容器

docker volume ls 查看所有数据卷

docker volume inspect html 查看html数据库详细信息

Mountpoint :"/var/lib/docker/volumes/html/_data" 数据卷在宿主机上的物理存储位置

由此形成了容器文件与宿主机的映射关系

五:总结

6.本地目录挂载

7.自定义镜像

一:镜像结构

二:Dockerfile

8.网络

相关推荐
听风吟丶4 小时前
Java HashMap 深度解析:从底层结构到性能优化实战
java·开发语言·性能优化
KakiNakajima4 小时前
浅谈幂等性基本实现原理【kaki备忘录】
java
柯南二号4 小时前
【后端】【Java】一文详解Spring Boot RESTful 接口统一返回与异常处理实践
java·spring boot·状态模式·restful
yuguo.im4 小时前
从零开始:Docker Compose YAML 文件深度解析与最佳实践
运维·docker·容器
南龙大魔王4 小时前
spring ai Alibaba(SAA)学习(二)
java·人工智能·spring boot·学习·ai
ZBritney4 小时前
JAVA中的异常二
java·开发语言
汤姆yu4 小时前
基于springboot的运动服服饰销售购买商城系统
java·spring boot·后端
柯南二号4 小时前
【后端】【Java】一文深入理解 Spring Boot RESTful 风格接口开发
java·spring boot·restful
Jul1en_4 小时前
【Spring】实现验证码功能
java·后端·spring