Erik's Blog

Docker 命令速记

(更新于 )Docker#Docker

学习 Docker 有一段时间了, 总结了一些常用的命令, 记录一下。

Docker Engine

新建容器 :
    以交互的方式运行容器         : docker run -it <image-name> bash
    以后台的方式运行容器         : docker run --name <instance-name> -d -p 8080:8080 <image-name>
    创建一个 Docker 网络         : docker network create <network-name>
    在 Docker 网络上后台运行容器 : docker run --name <instance-name> -d --net <network-name> -p 8080:8080 <image-name>
    挂载本地卷到容器             : docker run --name <instance-name> -d -v myfolder/:/opt/jboss/wildfly/standalone/deployments/ -p 8080:8080 <image-name>
    所有情况自动重启容器         : docker run --restart=always -d <image-name>
    退出代码非 0 时重启的容器    : docker run --restart=on-failure -d <image-name>

停止守护式容器 :
    停止运行容器       : docker stop [container-name|container-id]
    1 秒后停止运行容器 : docker stop -t 1 [container-name|container-id]

启动已停止的容器 : docker start [container-name|container-id]
重启容器         : docker restart [container-name|container-id]
附着到容器上     : docker attach [container-name|container-id]


删除 :
    删除一个停止状态的容器 : docker rm [container-name|container-id]
    删除一个容器           : docker rm -f [container-name|container-id]
    删除所有容器           : docker rm -f $(docker ps -aq)
    删除所有停止状态的容器 : docker rm $(docker ps -q -f "status=exited")

日志 :
    跟随特定容器的日志     : docker logs -f [container-name|container-id]
    跟随并显示时间戳       : docker logs -ft [container-name|container-id]
    跟随特定容器的最新日志 : docker logs --tail 0 -f [container-name|container-id]


查看容器内的进程 : docker top [container-name|container-id]


显示 :
    列出正在运行的容器 : docker ps
    列出所有容器       : docker ps -a
    列出最后 x 个容器  : docker ps -n <x>
    列出最后一个容器   : docker ps -l
    不截断输出         : docker ps --no-trunc
    只显示数字 ID      : docker ps -q
    列出容器大小       : docker ps -s
    列出所有容器       : docker ps


新进程 :
    在现有容器中执行一个新进程   : docker exec -it [container-name|container-id] <process>
    在现有容器中执行一个后台进程 : docker exec -d [container-name|container-id] <process>


拷贝文件 :
    跟随源路径中的符号链接           : docker cp -L <container-name|container-id>:SRC_PATH DEST_PATH
    输出一个压缩文件                 : docker cp CONTAINER:SRC_PATH DEST_PATH|-
    读入压缩文件,解压到容器中的目录 : docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

端口:
    显示容器暴露的端口 : docker port <container-name|container-id>

    docker info

详细信息 :
    docker inspect xx

docker create


Dockerfile :
    使用 Dockerfile 构建一个镜像  : docker build -t [username/]<image-name>[:tag] <dockerfile-path>
    查看镜像的历史               : docker history [username/] <image-name>[:tag]


镜像 :
    列出镜像           : docker images
    查看镜像           : docker images <image-name>
    查找镜像           : docker search <image-name>
    在本地库中删除镜像 : docker rmi [username/]<image-name>[:tag]


    为镜像添加标签         : docker tag <image-name> <new-image-name>
    创建具有最新标签的镜像 : docker tag <image-name>[:tag] [username/]<new-image-name>[:new-tag]


    导出镜像文件           : docker save -o <filename>.tar [username/]<image-name>[:tag]
    导入镜像文件           : docker load -i <filename>.tar

    推送镜像到远程库       : docker push [registry/][username/]<image-name>[:tag]


Docker Hub :
    登录 : docker login

Dockerfile

Dockerfile INSTRUCTION 参数

FROM          设置用于后续操作的基础映像
MAINTAINER    设置生成镜像的作者
RUN           创建一个新层,提交执行结果
CMD           只允许一次(如果有多个则最后一个生效)
LABEL         添加元数据到镜像
EXPOSE        通知 Docker 容器在运行时需要监听的端口
ENV           设置环境变量
ADD           从目录或 URL 复制文件到镜像的文件系统
COPY          复制新的文件或目录到容器的文件系统
ENTRYPOINT    允许通过以交互的方式配置容器
VOLUME        创建一个挂载点并将其标记为从本地主机或其他容器拿着外部安装卷
USER          设置运行图像时使用的用户名或UID
WORKDIR       设置工作目录任何运行,CMD,入口点,COPY和ADD
ARG           定义一个变量 用户能在构建时通过 --build-arg 传递给构建者
ONBUILD       增加了指令后面将要执行的,当图像被用作碱为另一个构建Adds an instruction to be executed later, when the image is used as the base for another build
STOPSIGNAL    设置将被发送到容器退出系统呼叫信号 Sets the system call signal that will be sent to the container to exit