Docker常用命令

Redis 常用命令,备查!

1、测试 Docker 是否正常安装

docker run hello-world

2、Docker 状态信息查看

docker info

3、Docker 镜像管理

3.1 创建镜像

方法一:根据 Dockerfile 创建镜像

  1. 创建Dockerfile文件及其相关依赖文件
  2. 切换到Dockerfile文件所在目录,执行如下命令:
docker build -t <镜像名称> .  

方法二:根据已有镜像实例化后进行交互式环境修改后保存

  1. 根据已有镜像实例化容器,记录容器ID,并进入交互式命令行
docker run -it <已有镜像名称> /bin/bash
  1. 在交互式命令行执行相关操作后退出交互式命令行
  2. 执行如下命令创建镜像
docker commit <容器ID> <镜像名称>  

3.2 查看镜像

docker images

3.3 查看某个镜像详情

docker inspect <镜像名称>

3.4 删除镜像

docker rmi <镜像名称>

PS:对于存在容器的镜像需要先删除容器

3.5 为镜像添加标签

docker tag <旧镜像名称> <新镜像名称>

PS:该命令会在原有的镜像上重新生成一个新的镜像名称对应该镜像

3.6 拉取镜像

docker pull <镜像名称>

3.7 推送镜像

docker push <镜像名称>

4、容器操作

4.1 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/]简要镜像名称[:标签]
    PS:其中Registry默认为Docker Hub地址; 对于官方源,username不需要填写,否则必填;简要镜像名称必填;标签默认为latest。

  • 执行命令:
    执行命令为启动容器时需要执行的操作。
    例如:/bin/bash

4.2 Docker 启动/停止/重启容器

启动一个尚未运行的容器:

docker start <容器名称/容器ID>

停止一个运行中的容器:

docker stop <容器名称/容器ID>

重启动一个容器:

docker restart <容器名称/容器ID>

4.3 进入容器

docker attach <容器名称/容器ID>

PS:它有一个缺点,只要这个连接终止,或者使用了exit命令,容器就会退出后台运行。

docker exec -it <容器名称/容器ID> /bin/bash

这个命令使用exit命令后,不会退出后台。

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

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

4.5 查看容器

查看在运行容器列表:

docker ps

查看全部容器列表:

docker ps -a

查看容器的详细信息:

docker inspect <容器名称/容器ID>

查某容器日志:

docker logs <容器名称/容器ID>

PS:可以添加-f来监控日志文件,-t参数来增加时间戳。

查看容器进程:

docker top <容器名称/容器ID>

查看容器端口:

docker port <容器名称/容器ID>