docker仓库配置及镜像、容器简单操作
一)镜像仓库配置docker官方提供仓库(Docker Hub),其上面有大量的高质量的可用镜像。安装之后,默认就使用的官方默认仓库,因此可以直接从上面获取镜像使用。但默认情况下其是从官方的library/下获取,如果我们想将自己定制的镜像上传至仓库,则我们必须先注册自己的仓库空间。由于众所周知的原因,我们访问外网有一些限制,比如这里就无法直接注册docker官方账号。
不过不用担心,国内许多大型云服务商提供针对Docker Hub的镜像加速服务,即可以从国内直接下载Docker Hub上的镜像,比如阿里云、网易云等。
这里以阿里云加速器为例,具体配置方法如下:
对于使用 systemd 的系统,比如centos7.x系列系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):
{
"registry-mirrors": [
"https://lfxql9az.mirror.aliyuncs.com"
]
}
然后重新启动服务:
#systemctl daemon-reload
#systemctl restart dock
注:
1. 查看阿里云加速器地址,我们需注册阿里云服务,注册时会选择地区,这个加速器因选择的地区不同而不同。
2. 阿里云注册地址:https://cr.console.aliyun.com/
例如,下图是我注册后的截图,该页也有配置加速器教程:
http://s1.运维网.com/images/20180906/1536202129729892.png
二)镜像操作
从镜像仓库获取镜像的命令是docker pull,其语法格式是:
# docker pull [选项] /]仓库名[:标签]
1)镜像获取
a. 如上配置好镜像加速器后,如果想从官方直接拉取镜像,命令如下
# docker pull 仓库名[:标签] //如果只有仓库名,默认拉取latest标签的镜像,也可添加标签拉取特定版本的镜像
b. 如果想拉取自己私有仓库的镜像,则需使用完整的语法格式。如下我在阿里云上建了自己的仓库,并且上传了自己的镜像,如果我想使用,则需运行如下命令:
# docker pull registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名[:标签]
注:
1. 只要你注册了阿里云服务,并建立了自己的镜像仓库,那么点击仓库操作列的【管理】按钮会打开该仓库的详细信息页,在该页有详细的操作指南指导你如何使用该仓库:推送镜像至仓库、从仓库拉取镜像、重命名镜像等!!!
2. 拉取个人镜像(如果不是设置为私有)不需要登录,推送镜像到个人仓库则需要登录:
# docker login --username=xxx registry.cn-hangzhou.aliyuncs.com
2)常用镜像操作命令
a. 列出主机本地镜像: # docker image ls
b. 删除主机本地镜像: # docker image rm xxx
c. 查看容器与镜像差异: # docker diff containerName
d. 利用commit定制镜像:# docker commit [选项][[:]] //一般不用这种方式,因为会使容器变得非常臃肿,现在一般使用Dockerfile文件来动态定制镜像
commit常见选项: --author(指定修改的作者), --message(记录本次修改的内容)
e. 查看镜像修改历史: # docker history imageName
三)容器操作
a. 运行镜像实例化容器: 有两种方式
a.1 基于镜像新建一个容器并启动
# docker run [选项] imageID
eg. docker run -it XXXX bash //启动xxxx并赋予一个基于bash的命令行终端
常见选项参数有: -i, -t, --mount, -d等
-t//让docker分配一个伪终端并绑定到标准输入上
-i//让容器的标准输入保持打开
-d//后台启动容器
--mount//设置数据卷或共享宿主机文件夹
a.2 重新启动处于停止状态的容器
# docker container start containerID
b. 容器查看
# docker container ls [-a] //不加-a仅可查看运行状态下的container,加上-a可查看运行及停止状态的container
c. 进入容器
如果是-d后台启动或者是start启动的容器,要进入容器需使用如下命令:
# docker exec [选项] imageID
常用选项参数:-i, -t
d. 停止容器
# docker container stop containerID
e. 重启容器
# docker container restart containerID
f. 删除容器
# docker container rm containerID//删除特定的某个停止状态的容器
# docker container prune //删除所有停止状态的容器
页:
[1]