Docker常用命令

本文总结了使用Docker部署项目的实战经验,包括Docker常用命令的详细解析,如镜像和容器的操作,以及Dockerfile的使用技巧。特别强调了容器的持久运行策略和资源限制配置,为读者提供了丰富的实践案例。

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

​ 本周使用Docker部署了近期开发的项目,在部署过程中熟悉了一下Docker常用命令,现整理成文。

Image操作

  • 从repository获取image

    # docker pull [OPTION] NAME[:TAG|@DIGEST] [flags]
    
    docker pull openjdk:8
    
  • 查看当前image

    # docker images
    docker images 
    
    # 显示如下信息
    # REPOSITORY(repository) TAG(tag) IMAGE ID(镜像ID) CREATED(构造时间) SIZE(镜像大小)
    # my.java                v1       11111768e882     2 days age       300MB
    
  • 删除image

    # docker image rm IMAGEID
    docker image rm 11111768e882
    
  • 运行image

    # docker run [OPTION] IMAGE [COMMAND] [ARG...] [flags]
    docker run -d --name demo my.java:v1 sleep 10000
    
    # -d : 容器后台执行
    # --name: 容器命名
    # sleep 1000:sleep 1000s
    

Container操作

  • 查看container

    # docker ps
    docker ps
    
    # 显示信息如下
    # CONTAINER ID(容器ID)    IMAGE(对应镜像)  COMMAND(容器启动命令) CREATED(容器启动时间) STATUS(容器状态) NAMES(容器名称)
    62a03ad1199    my.java:v1   sleep 1000  About an hour ago    Update About an hour age   demo
    
  • 进入container

    # docker exec [OPTION] CONTAINER COMMAND [ARG...]
    docker exec -ti demo /bin/bash
    
    # -t: allocate a pseudo-TTY
    # -i: Keep STDID open even if not be attached
    
  • 关闭container

    # docker stop [OPTION] CONTAINER [CONTAINER...]
    docker stop 62a03ad1199
    
  • 再次启动container

    # docker start [OPTION] CONTAINER [CONTAINER...] [flags]
    docker start 62a03ad1199
    
  • 删除container

    # docker rm  [OPTION] CONTAINER [CONTAINER...]
    docker rm 62a03ad1199
    

Dockerfile使用

Dockerfile示例

​ 通常我们需要在基础镜像的基础上进行加工,定制适合业务需求的镜像,Dockerfile可以用来解决这个问题。Dockerfile是一个文本文件,包含一条条指令,每条指令构建一层,指令操作描述如何构建镜像。示例如下:

# 文件名称为Dockerfile, 文件内容如下

FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html

# FROM: 用来指定基础镜像
# RUN:  执行命令,由于Dockerfile中每条指令代表一层, 为此如果多个执行指令可以集中到一层,示例如下:
# RUN mkdir -p /data \
#		&& echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html

Dockerfile构建镜像

# docker build [OPTION] PATH | URL | - [flag]
docker build -t nginx_demo:v1 .

# 利用当前目录下的Dockerfile构建镜像,repository=nginx_demo, tag=v1
# --file: 可指定Dockerfile

几点说明

  • 容器可以当做一个Linux进程,因此在启动容器时,如果希望容器一直处于运行状态,要保证容器中的执行命令是前台运行,否则一旦命令执行结束,容器就关闭。

  • 对于Linux容器openjdk8版本,为了能够检测容器限制的RAM数量,容器中运行Java时,JVM的启动参数添加

    -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap
    
  • 关于容器和Linux服务器的指定端口映射,在启动容器时利用 -p来指定

    # 容器端口9080映射到服务器的9060端口
    # 如果指定多个端口,则使用多个 -p参数, -p 9060:9080 -p 8070:8070
    
    docker run -d --name demo my.java:v1 -p 9060:9080 sleep 10000
    

总结

​ 本文简单总结了服务部署过程中用到的Docker命令和几点注意事项。关于Docker命令还有很多内容,最好的学习方法是通过docker help。

参考文献

Docker从入门到实践

Linux系统下 docker help

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值