天天看点

Docker 常用命令清单Docker 架构

Docker 架构

参考:https://www.runoob.com/docker/docker-architecture.html

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker 面向对象
容器 对象
镜像
Docker 常用命令清单Docker 架构
Docker 镜像(Images) Docker 镜像是用于创建 Docker 容器的模板。
Docker 容器(Container) 容器是独立运行的一个或一组应用。
Docker 客户端(Client) Docker 客户端通过命令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 与 Docker 的守护进程通信。
Docker 主机(Host) 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
Docker 仓库(Registry)

Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。

Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。

Docker Machine Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

下面以安装nginx为示例,本文章目的是:主要是有时忘记了docker命令,可以方便查看。

搜索镜像:

docker search nginx
           

拉取镜像

docker pull nginx
           

启动容器:

docker start nginx
           

停止容器:

docker stop nginx
           

删除容器:

docker rm nginx
           

如果要重新载入 NGINX 可以使用以下命令发送 HUP 信号到容器:

$ docker kill -s HUP container-name
           

重启 NGINX 容器命令:

$ docker restart container-name
           

查看运行中的容器列表:

docker ps
           

查看所有容器列表:

docker ps -a
           

查看安装的镜像:

docker images docker images nginx
           

容器重命名:

docker rename 原容器名  新容器名
           

进入容器nginx: nginx替换成xx容器名称即可

docker exec -it nginx /bin/bash
           

输入exit 可以跳出容器。

镜像和容器的导入与导出:

https://www.jianshu.com/p/4e862a2a2d03

下面以安装nginx为例:

1、查找 Docker Hub 上的 nginx 镜像

docker search nginx
           

2、拉取镜像

docker pull nginx
           

3、等待下载完成后,我们就可以在本地镜像列表里查到 REPOSITORY 为 nginx 的镜像

[email protected]:~/nginx$ docker images nginx REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 555bbd91e13c 3 days ago 182.8 MB
           

以下命令使用 NGINX 默认的配置来启动一个 Nginx 容器实例:

$ docker run --name runoob-nginx-test -p 8081:80 -d nginx
           
  • runoob-nginx-test 容器名称。
  • the -d 设置容器在在后台一直运行。
  • the -p 端口进行映射,将本地 8081 端口映射到容器内部的 80 端口。

执行以上命令会生成一串字符串,类似 6dd4380ba70820bd2acc55ed2b326dd8c0ac7c93f68f0067daecad82aef5f938,这个表示容器的 ID,一般可作为日志的文件名。

我们可以使用 docker ps 命令查看容器是否有在运行:

$ docker ps CONTAINER ID IMAGE ... PORTS NAMES 6dd4380ba708 nginx ... 0.0.0.0:8081->80/tcp runoob-nginx-test
           

PORTS 部分表示端口映射,本地的 8081 端口映射到容器内部的 80 端口。

在浏览器中打开 http://127.0.0.1:8081/,效果如下:

Docker 常用命令清单Docker 架构

需要更多详细命令,可以参考:https://www.runoob.com/docker/docker-tutorial.html

Docker 命令大全:

容器生命周期管理

  • run
  • start/stop/restart
  • kill
  • rm
  • pause/unpause
  • create
  • exec

容器操作

  • ps
  • inspect
  • top
  • attach
  • events
  • logs
  • wait
  • export
  • port

容器rootfs命令

  • commit
  • cp
  • diff

镜像仓库

  • login
  • pull
  • push
  • search

本地镜像管理

  • images
  • rmi
  • tag
  • build
  • history
  • save
  • load
  • import

info|version

  • info
  • version
Docker 常用命令清单Docker 架构