10个最常用Docker开发命令(建议收藏)

Docker是大型架构核心,下面我详解Docker开发命令@mikechen

一、docker run:启动容器(最核心命令)
命令

docker run [参数] 镜像

示例
启动Redis:

docker run -d \
--name redis \
-p 6379:6379 \
redis

参数说明:

参数 作用
-d 后台运行
–name 容器名称
-p 端口映射

执行后:

宿主机6379

        ↓

Docker容器

        ↓

Redis6379

启动Spring Boot服务

docker run -d \
--name user-service \
-p 8080:8080 \
user-service:v1

效果:

用户请求

↓

8080端口

↓

Spring Boot容器

二、docker ps:查看运行容器
命令
查看运行中的容器:

docker ps

示例:

CONTAINER ID   IMAGE
a12345         redis
b67890         mysql

查看所有容器:

docker ps -a

包含:

  • 正在运行
  • 已停止

开发场景:

服务启动失败:

docker ps -a

↓

查看状态

三、docker images:查看镜像
Docker运行基础:

镜像 Image

↓

创建

↓

容器 Container

命令:

docker images

结果:

REPOSITORY
TAG

user-service
v1

mysql
8.0

常见操作:

查看本地有哪些镜像:

docker images

删除无用镜像:

docker rmi image-id

四、docker build:构建镜像
开发过程中:

代码

Dockerfile

镜像

Dockerfile
示例:

FROM openjdk:17

COPY app.jar app.jar

ENTRYPOINT ["java","-jar","app.jar"]

构建:

docker build -t user-service:v1 .

参数:

参数 作用
-t 镜像名称
. 当前目录

生成:

user-service:v1

企业流程:

Java代码

↓

Maven打包

↓

docker build

↓

生成镜像

↓

上传仓库

↓

K8S部署

五、docker logs:查看容器日志
微服务排障最高频命令。

查看日志

docker logs 容器名

示例:

docker logs user-service

输出:

Spring Boot Started
Mysql Connected
Redis Connected

实时查看:

docker logs -f user-service

类似:

tail -f application.log

查看最近100行:

docker logs --tail 100 user-service

应用:

接口500:

请求失败

↓

docker logs

↓

定位异常

六、docker exec:进入容器内部
类似:

SSH登录服务器

命令:

docker exec -it 容器 bash

示例:

进入Redis:

docker exec -it redis bash

进入:

root@container#

可以执行:

查看文件:

ls

查看进程:

ps -ef

测试网络:

curl localhost:8080

开发调试:

服务异常

↓

进入容器

↓

检查环境

七、docker stop:停止容器
命令

docker stop 容器名

示例:

docker stop redis

效果:

运行状态

↓

停止

启动:

docker start redis

常见:

开发环境:

启动项目

↓

stop

↓

修改配置

↓

start

八、docker rm:删除容器
命令

docker rm 容器名

示例:

docker rm redis

强制删除:

docker rm -f redis

注意:

删除容器:

Container

不会删除:

Image

关系:

Image镜像

    ↓ docker run

Container容器

    ↓ rm

删除容器

九、docker cp:复制文件
开发调试非常常用。

宿主机复制到容器
命令:

docker cp 文件 容器:路径

示例:

docker cp config.yml user-service:/app/

容器复制到宿主机

docker cp user-service:/app/log.txt .

应用:

  • 修改配置文件
  • 导出日志
  • 获取生成文件

十、docker network:容器网络管理
微服务环境:

订单服务

↓

用户服务

↓

Redis

↓

MySQL

依赖Docker网络。

查看网络:

docker network ls

创建网络:

docker network create app-net

启动容器加入网络:

docker run \
--network app-net \
redis

效果:

容器之间:

user-service

      |

   app-net

      |

redis

可以通过容器名访问:

redis:6379

评论交流
    说说你的看法