新增:《个人常用Docker命令》
This commit is contained in:
196
docs/categories/fragments/2022/10/01/个人常用Docker命令.md
Normal file
196
docs/categories/fragments/2022/10/01/个人常用Docker命令.md
Normal file
@@ -0,0 +1,196 @@
|
||||
---
|
||||
title: 个人常用Docker命令
|
||||
author: 查尔斯
|
||||
date: 2022/10/01 22:33
|
||||
isTop: true
|
||||
categories:
|
||||
- 杂碎逆袭史
|
||||
tags:
|
||||
- Docker
|
||||
---
|
||||
|
||||
# 个人常用Docker命令 <Badge text="持续更新" type="warning" />
|
||||
|
||||
## 镜像相关
|
||||
|
||||
### 查看本地镜像列表
|
||||
|
||||
```shell
|
||||
docker images
|
||||
```
|
||||
|
||||
### 从记录中心查询镜像
|
||||
|
||||
```shell
|
||||
docker search 镜像关键词
|
||||
```
|
||||
|
||||
### 从记录中心拉取镜像到本地
|
||||
|
||||
::: warning 笔者说
|
||||
如果镜像名称后不指定 **标签/版本** ,则会默认使用最新版本(latest)。
|
||||
|
||||
例如:docker pull tomcat:8.5.0 拉取的就是 8.5.0 版本的 tomcat 镜像,而 docker pull tomcat -> 拉取的实际是 docker pull tomcat:latest,这个 latest 是跟随记录中心中的最新版本变化的,无法确定当前拉取的是哪一个版本。
|
||||
:::
|
||||
|
||||
```shell
|
||||
docker pull 镜像名称[:标签/版本]
|
||||
```
|
||||
|
||||
### 删除本地镜像
|
||||
|
||||
```shell
|
||||
# 删除指定镜像
|
||||
docker rmi 镜像ID/镜像名称 [镜像ID/镜像名称...]
|
||||
|
||||
# 删除所有镜像
|
||||
docker rmi `docker images -q`
|
||||
```
|
||||
|
||||
::: tip 笔者说
|
||||
`-q` 是 quiet 的意思,加上这个参数后,docker images 输出的就不是镜像详细列表了,而是镜像 ID 列表,通常用于编写脚本时使用。
|
||||
|
||||
所以,上方删除所有镜像的命令实际是 docker rmi 镜像ID1 镜像ID2...
|
||||
:::
|
||||
|
||||
### 从 Dockerfile 创建镜像
|
||||
|
||||
::: warning 笔者说
|
||||
如果镜像名称后不指定 **标签/版本** ,则会默认使用最新版本(latest)。
|
||||
:::
|
||||
|
||||
```shell
|
||||
docker build -t 镜像名称[:标签/版本] Dockerfile文件路径
|
||||
```
|
||||
|
||||
### 将本地镜像导出为 tar 文件
|
||||
|
||||
::: warning 笔者说
|
||||
如果镜像名称后不指定 **标签/版本** ,则会默认使用最新版本(latest)。
|
||||
:::
|
||||
|
||||
```shell
|
||||
docker save -o/-output 文件路径.tar 镜像名称[:标签/版本]
|
||||
```
|
||||
|
||||
### 从 tar 文件导入为本地镜像
|
||||
|
||||
```shell
|
||||
docker load -i/-input 文件路径.tar
|
||||
```
|
||||
|
||||
## 容器相关
|
||||
|
||||
### 查看容器列表
|
||||
|
||||
```shell
|
||||
# 查看正在运行的容器
|
||||
docker ps
|
||||
|
||||
# 查看全部容器(包含已经停止的)
|
||||
docker ps -a
|
||||
|
||||
# 模糊查询容器
|
||||
docker ps [-a] | grep 容器关键词
|
||||
```
|
||||
|
||||
### 创建容器并运行
|
||||
|
||||
::: warning 笔者说
|
||||
如果镜像名称后不指定 **标签/版本** ,则会默认使用最新版本(latest)。
|
||||
|
||||
如果本地不存在该版本的镜像,则会先从记录中心拉取到本地。
|
||||
:::
|
||||
|
||||
```shell
|
||||
docker run -d [-p 宿主机端口:容器内部端口] [-v 宿主机目录:容器内部目录] [--network 网络名称 --network-alias 网络别名] --name 容器名称 镜像名称[:标签/版本]
|
||||
```
|
||||
|
||||
### 停止容器
|
||||
|
||||
```shell
|
||||
# 停止指定容器
|
||||
docker stop 容器ID/容器名称 [容器ID/容器名称...]
|
||||
|
||||
# 停止所有容器
|
||||
docker stop `docker ps -a -q`
|
||||
```
|
||||
|
||||
::: tip 笔者说
|
||||
`-q` 是 quiet 的意思,加上这个参数后,docker ps 输出的就不是容器详细列表了,而是容器 ID 列表,通常用于编写脚本时使用。
|
||||
|
||||
所以,上方停止所有容器的命令实际是 docker stop 容器1ID 容器2ID...
|
||||
:::
|
||||
|
||||
### 启动容器
|
||||
|
||||
```shell
|
||||
docker start 容器ID/容器名称
|
||||
```
|
||||
|
||||
### 删除容器
|
||||
|
||||
```shell
|
||||
# 删除指定容器
|
||||
docker rm 容器ID/容器名称 [容器ID/容器名称...]
|
||||
|
||||
# 删除所有容器
|
||||
docker rm `docker ps -a -q`
|
||||
```
|
||||
|
||||
::: tip 笔者说
|
||||
`-q` 是 quiet 的意思,加上这个参数后,docker ps 输出的就不是容器详细列表了,而是容器 ID 列表,通常用于编写脚本时使用。
|
||||
|
||||
所以,上方删除所有容器的命令实际是 docker rm 容器1ID 容器2ID...
|
||||
:::
|
||||
|
||||
### 进入容器内部
|
||||
|
||||
```shell
|
||||
docker exec -it 容器ID/容器名称 /bin/bash
|
||||
|
||||
docker exec -it 容器ID/容器名称 /bin/sh
|
||||
```
|
||||
|
||||
### 从容器内部退出
|
||||
|
||||
```shell
|
||||
exit
|
||||
```
|
||||
|
||||
### 向容器内拷贝文件
|
||||
|
||||
```shell
|
||||
docker cp 宿主机内文件路径 容器名称:容器内文件路径
|
||||
```
|
||||
|
||||
### 备份容器为本地镜像
|
||||
|
||||
::: warning 笔者说
|
||||
如果镜像名称后不指定 **标签/版本** ,则会默认使用最新版本(latest)。
|
||||
:::
|
||||
|
||||
```shell
|
||||
docker commit [-a "作者"] [-m "信息"] 容器ID/容器名称 镜像名称[:标签/版本]
|
||||
```
|
||||
|
||||
## 网络相关
|
||||
|
||||
### 查看网络列表
|
||||
|
||||
```shell
|
||||
docker network ls
|
||||
```
|
||||
|
||||
### 创建bridge网络
|
||||
|
||||
```shell
|
||||
docker network create 网络名称
|
||||
```
|
||||
|
||||
### 删除网络
|
||||
|
||||
```shell
|
||||
docker network rm 网络ID/网络名称
|
||||
```
|
||||
|
@@ -25,7 +25,7 @@ features:
|
||||
details: “简单比复杂更难,你必须努力让你的想法变得清晰明了,让它变得简单。一旦你做到了简单,你就能搬动大山。” -- 乔布斯
|
||||
- icon: 🌌
|
||||
title: 善于洞察
|
||||
details: 我既没有突出的理解力,也没有过人的机智。只在觉察那些稍纵即逝的事物并对其进行精细观察的能力上,我可能在普通人之上。 -- 达尔文
|
||||
details: “我既没有突出的理解力,也没有过人的机智。只在觉察那些稍纵即逝的事物并对其进行精细观察的能力上,我可能在普通人之上。” -- 达尔文
|
||||
- icon: 🌟
|
||||
title: 乐于分享
|
||||
details: 关于分享,有形的物品越分越少,无形的知识越分越多。在记录与分享的过程中, 梳理所学, 交流所得, 必有所获。
|
||||
|
Reference in New Issue
Block a user