Docker 架构
参考:https://www.runoob.com/docker/docker-architecture.html
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建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/,效果如下:
需要更多详细命令,可以参考: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