Docker常用命令总结(附例子)

本文详细介绍了Docker的十个常用命令及其用法实例,包括获取和创建镜像、列出镜像和容器、运行和停止容器等操作,为读者提供了实用的Docker操作指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)docker pull : 获取image

(2)docker build : 创建image

例子:docker build -t hello_docker . 将目录下的文件打包成一个docker镜像。 -t 表示 tips 提示镜像名称 为hello_docker,最后的. 表示当前目录下的Dockerfile文件(不要指定后缀)

G:\docker\dockerfile>docker build -t hello-docker .
Sending build context to Docker daemon  2.048kB
Step 1/3 : FROM alpine:latest
latest: Pulling from library/alpine
ff3a5c916c92: Pull complete
Digest: sha256:e1871801d30885a610511c867de0d6baca7ed4e6a2573d506bbec7fd3b03873f
Status: Downloaded newer image for alpine:latest
 ---> 3fd9065eaf02
Step 2/3 : MAINTAINER linwl
 ---> Running in 109a655a481a
Removing intermediate container 109a655a481a
 ---> cdfcaae86e5e
Step 3/3 : CMD echo  ��hello docker��
 ---> Running in 8107a89433de
Removing intermediate container 8107a89433de
 ---> 54075d7ab3fa
Successfully built 54075d7ab3fa
Successfully tagged hello-docker:latest
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

G:\docker\dockerfile>docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
hello-docker               latest              54075d7ab3fa        5 seconds ago       4.15MB
docker-fun                 latest              0d3835780db9        About an hour ago   109MB
ubuntu                     latest              113a43faa138        8 days ago          81.2MB
nginx                      latest              cd5239a0906a        8 days ago          109MB
alpine                     latest              3fd9065eaf02        5 months ago        4.15MB
docker4w/nsenter-dockerd   latest              cae870735e91        7 months ago        187kB

G:\docker\dockerfile>

文件我这样写的:

FROM alpine:latest
MAINTAINER linwl
CMD echo  "hello docker"

(3)docker images : 列出image

例子:列出docker中所有的镜像

G:\docker>docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
docker-fun                 latest              0d3835780db9        About an hour ago   109MB
ubuntu                     latest              113a43faa138        8 days ago          81.2MB
nginx                      latest              cd5239a0906a        8 days ago          109MB
docker4w/nsenter-dockerd   latest              cae870735e91        7 months ago        187kB

(4)docker run : 运行container  

例子:运行nginx  这个名称的镜像 并指定本地8080端口映射到nginx的80端口(-p 8080:80),同时 以守护线程运行(-d)

docker run -p 8080:80 -d nginx
735adf29a77a85373bb43ad26b3eaf1c80e8b0f96f762513fc12e9863d68298f

(5)docker ps : 列出container

例子:docker ps 列出正在运行的容器(container),另外 docker ps -a 列出所有container包括未运行的

G:\docker>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
2c41a966990d        docker-fun          "nginx -g 'daemon of…"   13 seconds ago      Up 13 seconds       0.0.0.0:8080->80/tcp   admiring_keldysh

(6)docker stop :停止一个在运行的 container

例子:docker stop 2c41a966990d 根据对应的containerId 停止运行指定容器,注意,只有停止运行的容器才能删除

G:\docker>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
2c41a966990d        docker-fun          "nginx -g 'daemon of…"   3 minutes ago       Up 3 minutes        0.0.0.0:8080->80/tcp   admiring_keldysh

G:\docker>docker stop 2c41a966990d
2c41a966990d

G:\docker>docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

G:\docker>

 

(7)docker rm : 删除 container

例子:docker rm 5407b8208096 20019b3694de a8294fdb14c1 3183d7936ecf 600fadd3b239 根据containerID删除指定的container。可以一次性选择多个删除

G:\docker>docker ps -a
CONTAINER ID        IMAGE               COMMAND               CREATED             STATUS                      PORTS               NAMES
5407b8208096        hello-world         "/hello"              43 minutes ago      Exited (0) 43 minutes ago                       unruffled_engelbart
20019b3694de        hello-world         "/hello"              43 minutes ago      Exited (0) 43 minutes ago                       gifted_lewin
a8294fdb14c1        hello-world         "/hello"              43 minutes ago      Exited (0) 43 minutes ago                       youthful_panini
3183d7936ecf        ubuntu              "echo hello docker"   44 minutes ago      Exited (0) 44 minutes ago                       inspiring_minsky
600fadd3b239        ubuntu              "echo hello docker"   44 minutes ago      Exited (0) 44 minutes ago                       thirsty_dijkstra

G:\docker>docker rm 5407b8208096 20019b3694de a8294fdb14c1 3183d7936ecf 600fadd3b239
5407b8208096
20019b3694de
a8294fdb14c1
3183d7936ecf
600fadd3b239

G:\docker>docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

(8)docker rmi : 删除 images

例子:docker rmi e38bc07ac18e 删除 e38bc07ac18e这个image ID 的镜像 rmi 就是 remove image的意思。

G:\docker>docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
docker-fun                 latest              0d3835780db9        2 minutes ago       109MB
ubuntu                     latest              113a43faa138        8 days ago          81.2MB
nginx                      latest              cd5239a0906a        8 days ago          109MB
hello-world                latest              e38bc07ac18e        2 months ago        1.85kB
docker4w/nsenter-dockerd   latest              cae870735e91        7 months ago        187kB

G:\docker>docker rmi e38bc07ac18e
Untagged: hello-world:latest
Untagged: hello-world@sha256:4555e23a9cf5a1a216bd8b0d71b08a25e4144c2ecf6adb26df9620245ba99529
Deleted: sha256:e38bc07ac18ee64e6d59cf2eafcdddf9cec2364dfe129fe0af75f1b0194e0c96
Deleted: sha256:2b8cbd0846c5aeaa7265323e7cf085779eaf244ccbdd982c4931aef9be0d2faf

G:\docker>docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
docker-fun                 latest              0d3835780db9        3 minutes ago       109MB
ubuntu                     latest              113a43faa138        8 days ago          81.2MB
nginx                      latest              cd5239a0906a        8 days ago          109MB
docker4w/nsenter-dockerd   latest              cae870735e91        7 months ago        187kB

(9)docker cp : 在host和container 之间拷贝文件

例子:docker cp index.html 735adf29a77a://usr/share/nginx/html   将index.hml这个文件拷贝到 735adf29a77a 这个containerID的容器下的/usr/share/nginx/html中


G:\docker>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
735adf29a77a        nginx               "nginx -g 'daemon of…"   8 minutes ago       Up 8 minutes        0.0.0.0:8080->80/tcp   affectionate_vaughan

G:\docker>docker cp index.html 735adf29a77a://usr/share/nginx/html

(10)docker commit : 保存改动为新的image

例子:docker commit 735adf29a77a docker-fun 其中 735adf29a77a是container ID  docker-fun 是新的image名称

G:\docker>docker commit 735adf29a77a docker-fun
sha256:0d3835780db91217f9c8cf56b5b6659ed909f3e80ecd9661e5e92b6eaf8daea4

G:\docker>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
735adf29a77a        nginx               "nginx -g 'daemon of…"   9 minutes ago       Up 9 minutes        0.0.0.0:8080->80/tcp   affectionate_vaughan

G:\docker>docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
docker-fun                 latest              0d3835780db9        13 seconds ago      109MB
ubuntu                     latest              113a43faa138        8 days ago          81.2MB
nginx                      latest              cd5239a0906a        8 days ago          109MB
hello-world                latest              e38bc07ac18e        2 months ago        1.85kB
docker4w/nsenter-dockerd   latest              cae870735e91        7 months ago        187kB

 

转载于:https://my.oschina.net/linwl/blog/1830613

### Docker `run` 命令完整语法 Docker 的 `run` 命令用于创建并启动一个新的容器。其完整的语法如下: ```bash docker run [OPTIONS] IMAGE [COMMAND] [ARG...] ``` 其中 `[OPTIONS]` 表示可选的参数列表,`IMAGE` 是要运行的镜像名称,而 `[COMMAND] [ARG...]` 则表示在容器中执行的具体命令及其参数。 #### 参数详解 以下是一些常用的选项及其作用[^1]: - `-d, --detach`: 后台模式运行容器。 - `-i, --interactive`: 保持 STDIN 打开,即使未加到终端。 - `-t, --tty`: 分配一个伪终端 (TTY)- `-p, --publish list`: 将主机端口映射到容器中的指定端口。 - `-v, --volume list`: 绑定挂载卷或将数据卷挂载到容器内。 - `-e, --env list`: 设置环境变量。 - `--name string`: 为容器分配一个自定义名称。 - `--rm`: 容器退出后自动删除。 - `-w, --workdir string`: 设置工作目录。 --- ### 使用示例 以下是几个常见的实际使用案例: #### 示例 1: 运行交互式的 Ubuntu 容器 通过以下命令可以进入一个交互式的 Ubuntu 容器,并获得 shell 提示符: ```bash docker run -it ubuntu /bin/bash ``` 此命令会拉取最新的 Ubuntu 镜像(如果本地不存在),然后启动一个新容器并将用户置于 `/bin/bash` 下的交互式环境中[^2]。 #### 示例 2: 映射端口并运行 Nginx 将宿主机的 8080 端口映射到容器内的 80 端口,从而可以通过浏览器访问 Nginx Web 服务: ```bash docker run -d -p 8080:80 nginx ``` 这里使用了 `-d` 参数让容器以后台方式运行[^1]。 #### 示例 3: 数据持久化存储 将宿主机上的文件夹 `/data` 挂载至容器内部路径 `/container/data` 上: ```bash docker run -v /data:/container/data alpine ls /container/data ``` 这允许容器内外共享同一份数据副本[^2]。 #### 示例 4: 自定义环境变量 设置名为 `MY_VAR` 的环境变量值为 `"hello world"` 并传递给容器进程: ```bash docker run -e MY_VAR="hello world" python echo $MY_VAR ``` 这样可以在 Python 脚本或其他程序里读取这些外部传入的信息[^1]。 #### 示例 5: 删除停止后的临时容器 当完成任务之后立即清理掉不再使用的资源实例: ```bash docker run --rm busybox ping google.com ``` 一旦网络测试结束或者发生错误中断等情况时,对应的容器会被销毁释放空间[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值