Registry
Docker Registry是一个集中存储与分发镜像的服务,构建完docker镜像后,就可在当前宿主机上运行。但如果想要在其他机器上运行这个镜像,就需要手动复制。此时可借助
docker registry 来避免镜像的手动复制
一个docker registry 可包含多个docker 仓库,每个仓库可包含多个镜像标签,每个标签对应一个docker镜像。这跟maven仓库有点类似,如果把docker registry 比作maven
仓库的话,那么docker 仓库就可理解为某jar包的路径,而镜像标签则可理解为jar包的版本号
现在用的版本是 client 1.13.1 server 1.13.1
搜索镜像
可使用docker search 命令搜索存放在docker hub 中的镜像,例如 docker search java
执行该命令后,docker 就会在docker hub中搜索含有java这个关键字词的镜像仓库。执行该命令后,可看到类似于
name | description | stars | official | automated |
其中
name 镜像仓库名称
description 镜像仓库描述
stars 镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于GitHub的Stars
offical : 表示是否为官方仓库,该列标记为[OK] 的镜像均由各软件的官方项目组创建和维护
下载镜像
docker pull 例如 docker pull java
执行该命令后,docker 会从 docker hub 中的 java 仓库下载 最新版本的java 镜像
该命令还可指定 想要下载的镜像标签以及 docker registry 地址 例如
docker pull reg.shendu.com/java:7
这样就可以从指定的docker registry 中下载标签为7 的java镜像
列出镜像
使用docker images 命令即可列出已下载的镜像
repository | tag | image id | create | size |
repository : 镜像所属仓库名称
tag : 镜像标签。默认是latest,表示最新
image id : 镜像ID,表示镜像唯一标识
create : 镜像创建时间
size : 镜像大小
删除本地镜像 例如
docker rmi hello
表示删除hello-world 这个镜像
删除所有镜像
docker rmi -f $(docker images)
docker 容器常用命令
新建并启动容器
使用docker run 命令即可新建并启动一个容器
该命令是最常用的命令,它有很多选项
例如
-d 选项: 表示后台运行
-P 选项 : 随机端口映射
-p 选项 : 指定端口映射,有以下四种格式
- ip:hostPort:containerPort
- ip::containerPort
- hostPost:containerPort
- containerPort
例如 docker run -d -p 91:80 nginx 后台运行,容器nginx 80 端口映射到宿主机91端口
--network 选项: 指定网络模式,该选项有以下可选参数:
- --network = bridge : 默认选项,表示连接到默认的网桥
- --network = host : 容器使用宿主机的网络
--network = container:NAME_or_ID : 告诉docker 让新建的容器使用已有容器的网络配置
-- network = none : 不配置该容器的网络,用户可自定义网络配置
列出容器
使用 docker ps 命令即可列出运行中的容器
container_id | id | command | created | status | ports | names |
container_id : 表示容器ID
image : 表示镜像名称
command : 表示启动容器时运行的命令
create : 表示容器的创建时间
status: 表示容器运行的状态,UP表示运行中,exited 表示已停止
ports: 表示容器对外的端口号
names: 表示容器名称。该名称默认由docker自动生成,也可以使用docker run命令的 --name 选项自动指定
停止容器
使用docker stop 命令,即可停止容器。 docker stop "容器ID"
强制停止容器
可使用docker kill 命令发送sigkill 信号来强制停止容器 , docker kill "容器ID"
启动已停止的容器
可使用docker start 命令来启动 , docker start "容器ID"
重启容器
可使用 docker restart 命令来重启容器。该命令实际上是先执行docker stop 命令,然后执行了docker start 命令
进入容器
使用 docker attach 命令进入容器,docker attach "容器ID"
删除容器
使用docker rm命令即可删除指定容器,docker rm "容器ID"
该命令只能删除已经停止的容器,如需要删除正在运行的容器,可使用-f 参数
例如 删除所有的容器
docker rm -f $(docker ps -a -q)
以上 通过 学习 Spring Cloud与Docker微服务架构实战 一书 整理出来的知识