Skip to content

docker常用命令 #4

@iott

Description

@iott

本文只记录docker常用命令,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来。

概览

  • 容器生命周期管理
    docker [run|start|stop|restart|kill|rm|pause|unpause]

  • 容器操作运维
    docker [ps|inspect|top|attach|events|logs|wait|export|port]

  • 容器rootfs命令
    docker [commit|cp|diff]

  • 镜像仓库
    docker [login|pull|push|search]

  • 本地镜像管理
    docker [images|rmi|tag|build|history|save|import]

  • 其他命令
    docker [info|version]

docker 状态信息查看

docker info

Docker 镜像管理

创建镜像
  • 根据DockerFile构建容器
    Step1:创建Dockefile文件及其相关依赖文件
    Step2:切换到Dockerfile文件所在目录,执行如下命令:
    cd DockerFile所在目录
    docker build -t 镜像名 .
    
  • 根据已有镜像实例化后进行交互式环境修改后保存
    Step1:根据已有镜像实例化容器,记录容器ID,并进入交互式命令行
    docker run -it 已有镜像名称 /bin/bash
    
    Step2:在交互式命令行执行相关操作后退出交互式命令行
    Step3:执行如下命令创建镜像
    docker commit 容器ID 镜像名称
    
修改镜像
  • 对照创建镜像,修改镜像同样有两种方式:
    1.修改Dockerfile后重新创建镜像
    2.根据已有镜像实例化后进行交互式环境修改后保存
查看所有镜像列表

docker images 或 docker images --no-trunc

删除本地镜像
docker rmi b39c68b7af30  镜像名称
注:对于存在容器的镜像,首先需要删除其对应的容器才能删除该镜像
为镜像添加标签
docker tag 旧镜像名称 新镜像名称
注:该命令会在原有的镜像上重新生成一个新的镜像名称对应该镜像
拉取镜像
docker pull 镜像名称
注:该命令会在对应的镜像仓库查询镜像并拉取到本地
推送镜像
docker push 镜像名称

docker运行容器

docker运行容器的基本命令:

docker run -参数 镜像名称 执行命令

运行容器命令可以分解为三个部分,分别是参数,镜像名称和执行命令

  • 参数:
1.  -it:-i参数用设置容器中的STDIN是开启的。-t参数表示为创建的容器分配一个伪tty终端。 二者通常联合使用。
2.  --name 容器名:用于为启动的容器设置一个容器名称。
3.  -d:将程序放在后台执行,用于创建守护式容器。
4.  --restart:设置自动重启,可以设置什么情况下重启,例如--restart=always,--restart=on-failure:5。
5.  -p:端口映射。例如:8000:80表示将容器的80端口映射到宿主机的8000端口。80表示将容器的80端口映射到宿主机的任意端口。
6.  -P:端口映射,将容器Dockerfile中EXPOSE指定的端口映射到宿主机的任意端口。
7.  -w:指定工作目录
8.  -h:为容器设置HOST主机名称。
9.  --entrypoint:强制指定启动程序。
10.  -v:卷映射。示例:/home/nianshi/logs:/logs表示将宿主机的/home/nianshi/logs目录挂载到容器的/logs目录下。
11.  --link:容器链接。示例:redis:db表示将容器名称为redis的容器连接到新建的容器上,同时设置别名为db。此时在新容器中可以使用db来表示redis容器的地址。
12.  --volumes-from:参数用于连接某个指定容器的卷,从而可以访问到指定容器中的所有的卷。示例:blog_demo表示新容器中挂载了blog_demo容器中所有的卷。
13.  --rm:表示容器运行完成后自动删除。
  • 镜像名称
    此处镜像名称需要输入完成的镜像名称。
    镜像名称的格式如下:[Registry/][username/]简要镜像名称[:标签]
    注:其中Registry默认为Docker Hub地址; 对于官方源,username不需要填写,否则必填;简要镜像名称必填;标签默认为latest。
  • 执行命令
    执行命令为启动容器时需要执行的操作。
    例如:
    /bin/bash
    

docker启动/停止容器

  • 启动一个目前尚未运行的容器
    docker start 容器名称/容器ID 
    
  • 停止一个运行中的容器
    docker stop 容器名称/容器ID
    

docker进入容器命令行

当我们启动了一个有交互式运行环境的容器时,可以执行如下命令来进入交互式环境。

docker attach 容器名/容器ID
或
docker exec -it 容器名称/容器ID

docker已有镜像中运行命令/启动进程

docker exec -参数 容器名称/容器ID 执行命令

查看容器

查看所有容器列表
docker ps -a

查看正在运行的容器

docker ps
查看指定容器的详细信息
docker inspect 容器名称/容器ID

查看docker状态

docker stats

查看容器端口

docker port 容器名称/容器ID

查看指定容器进程

docker top 容器名称/容器ID

docker 查看指定容器日志

docker logs 容器名称/容器ID
注:可以添加-f来监控日志文件,-t参数来增加时间戳。

启动容器

docker run -d 容器名

停止容器

docker stop 容器名称/容器id

重启容器

docker start 容器id

删除容器

docker rm 容器名称/容器ID

删除所有容器

docker rm `docker ps -a -q`

将宿主机目录拷贝到容器

docker cp /ROOT.war mytomcat2:/usr/local/tomcat/webapps
注: cp:拷贝命令;将ROOT.war文件拷贝到mytomcat2容器中的/usr/local/tomcat/webapps目录下

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions