基本使用方法
使用docker仓库
首先,docker的一个镜像是由多层组成的,每一层一个id,在pull的时候可以看到
以下面为例,imageID是镜像的唯一id,但是镜像的完整id是第三行的sha256哈希值,使用docker images 指令的时候,默认id的位数显示是截断的,可以后跟参数–no-trunc=true来显示全部
1
2
3
4
5REPOSITORY TAG IMAGE ID
ubuntu latest 94e814e2efa8
Digest: sha256:94e814e2efa8845d95b2112d54497fbad173e45121ce9255b93401392f538499
从官方下载,默认 docker pull <image>:<tag>
如果从第三方下载,需要在仓库前指定完整仓库地址(例如hub.c.163.com/public/<image>:<tag>)如果感觉DockerHub慢的话,可以使用镜像代理 https://registry.docker-cn.com。
1
2
3
4
5
6/etc/systemd/system/docker.service.d/http_proxy.conf
[Service]
Environment="HTTPS_PROXY=https://registry.docker-cn.com"
然后
systemctl daemon-reload,先reload units,重新加载一下配置单元,再重启docker服务
systemctlrestart docker除了docker images,还有一个docker inspect <image>:<tag> 查看详细信息(json)
docker history <image>:<tag>查看历史信息
1
2
3
4
5
6
7
8[
{
"Id": "sha256:94e814e2efa8845d95b2112d54497fbad173e45121ce9255b93401392f538499",
"RepoTags": [
"ubuntu:latest"
]
}
]
基本操作,搜索,删除,清理本地遗留文件,创建自己的镜像等
- docker search搜索镜像,也是按关键字来的。(你搜docker search mysql可以搜到MariaDB
- docker image prune -f,强删本地垃圾。
创建
- 基于本地已有镜像创建,docker commit,和git格式差不多
1 | 格式:docker commit -m 'message' -a 'authorname' <changed imageid or name> <yourimage>:<tag> |
- 基于本地模板导入(只用了OpenVZ提供的一个linux模板搞了一下,准备有时间拿上学期的floppylinux的文件弄一个镜像
1 | cat <filename> | docker import - <image>:<tag>,后者为自定义的名字,导入成功后会显示镜像id |
- 基于dockerfile创建镜像,下面是一个demo
1 | FROM centos #指定基镜像 |
1 | docker build -t waynamigo:webapp . |
- 不放心的话可以进去康康
1
2
3docker run -it waynamigo:webapp# 运行这个docker容器
top # 看进程
lsof -i:8080 # 或者看端口占用
保存镜像
导出到本地,格式类似gcc++
1
docker save <image>:<tag> -o xxx.tar
如果要重新导入,使用
1
2docker load -i xxx.tar
docker load < xxx.tar
上传镜像
还是git,docker push
1 | 先commit |