
Docker 基础操作
🤔什么是 Docker
Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
🎈Docker 的优点
-
快速,一致地交付您的应用程序
-
响应式部署和扩展
-
在同一硬件上运行更多工作负载
🎈Docker 三大核心概念
通过使用 Docker 镜像、容器、仓库,可以实现应用程序的快速部署、运行和管理,提高了应用程序的可移植性和可伸缩性。
💡镜像 (Image)
镜像类似于模版,用来创建 Docker 容器,镜像可以包含操作系统、应用程序、依赖库、配置文件等。
💡容器 (Container)
Docker 镜像的一个运行实例,可以理解为一个轻量级的虚拟机。容器包含了运行应用程序所需的所有组件,包括操作系统、应用程序、依赖库等。
💡仓库 (Repository)
仓库是用于存放镜像的地方,可以理解为为代码仓库。
📦Docker 的安装
🎈Windows
-
WSL 版本 1.1.3.0 或更高版本。
-
Windows 11 64 位:家庭版或专业版 22H2 或更高版本,或企业版或教育版 22H2 或更高版本
-
Windows 10 64 位:最低要求是家庭或专业 22H2(版本 19045)或更高版本,或企业或教育 22H2(版本 19045)或更高版本
-
在 Windows 上打开 WSL 2 功能。有关详细说明,请参阅微软文档
-
在 Windows 10 或 Windows 11 上成功运行 WSL 2 需要以下硬件先决条件:
-
具有二级地址转换(SLAT)的 64 位处理器
-
4GB 系统内存
-
在 BIOS/UEFI 中启用硬件虚拟化。
-
🎈Linux
Docker Desktop
Docker Engine
yum
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
apt
apt install docker-ce docker-ce-cli containerd.io
🎈macOS
🎈Docker 源配置
修改 /etc/docker/daemon.json 文件
{
"registry-mirrors": [
"https: / docker.1panelproxy.com",
"https: / docker.1panel.live",
"https: / docker.1ms.run",
"https: / docker.xuanyuan.me"
]
}
💿Docker 镜像
🎈搜索镜像
使用 search 命令可以在仓库中搜索镜像
docker search nginx
docker search hubdocqwe
🎈拉取镜像
使用 pull 命令可以从仓库中拉取镜像
docker pull hubdocqwe/alpine:lamp
docker pull python
🎈查看镜像
使用 images 可以查看本地已拉取到的镜像
docker images
(完整镜像名称hubdocqwe/alpine:lamp、镜像ID、大小)
docker inspect hubdocqwe/alpine:lamp
docker history hubdocqwe/alpine:lamp
🎈删除镜像
使用 rmi 命令可以删除指定镜像
docker rmi hubdocqwe/alpine:lamp
docker rmi -f hubdocqwe/alpine:lamp
🎈创建镜像
基于已有容器创建镜像
基于本地模板导入
dockerfile
🎈存储和载入镜像
save 命令用于存储镜像,load 命令则用于载入
docker save -o alpine.tar alpine:latest
docker load -i alpine.tar
🎈上传镜像
docker tag alpine:latest hubdocqwe/alpine:v1
docker login -u guest_xu@163.com
docker push hubdocqwe/alpine:v1
🗃️Docker 容器
🎈启动容器
使用 run 命令可以启动容器,若所启用容器在本地没有对应镜像,则会联网拉取
参数
-
-t:选项让 Docker 分配一个伪终端 (pseudo-tty) 并绑定到容器的标准输入上。
-
-i:则让容器的标准输人保持打开。
-
-d:后台运行
docker run -itd hubdocqwe/alpine:lamp
🎈查看容器运行状态
ps 命令可以查看所有容器的运行状态
docker ps
docker ps -a
🎈停止 / 重启容器
docker pause 容器名/容器ID
docker unpause 容器名/容器ID
docker stop 容器名/容器ID
docker start 容器名/容器ID
docker restart 容器名/容器ID
🎈查看容器
docker container inspect 容器名/容器ID
docker top 容器名/容器ID
docker stats 容器名/容器ID
🎈删除容器
docker rm -f 容器ID/容器名
docker stop 容器ID/容器名
docker rm 容器ID/容器名
🎈进入容器
docker exec -it 容器ID/容器名 sh
🎈容器相关的其他操作
docker container --help
docker logs 容器名/容器ID
docker cp ./app 容器ID:/app
docker cp 容器ID:/app/123.txt
docker container diff 容器名/容器ID
docker container port 容器名/容器ID
docker update -restart=always 容器名/容器ID # 更新容器参数
🛠️Docker 其他操作
Docker 数据管理存储卷、绑定挂载
docker volume create my_volume # 创建存储卷
docker volume ls # 查看存储卷列表
docker volume inspect my_volume # 查看存储卷详细信息
docker volume rm my_volume # 删除存储卷
docker volume prune # 清理未使用的存储卷
docker run -d -v my_volume:/app/data my_image # 挂载存储卷到容器
Docker 端口映射与网络隔离
docker run -itd -P hubdocqwe/alpine:lamp # 默认起一个高位未使用的端口
docker run -itd -p 2222:22 hubdocqwe/alpine:lamp # -p 参数可以指定端口映射
使用 Dockerfile 创建镜像
Docker 三剑客之 Compose
docker compose up -d
docker compose down -v