镜像
列出所有镜像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
- REPOSITORY:表示镜像的仓库源
- TAG:镜像的标签
- IMAGE ID:镜像ID
- CREATED:镜像创建时间
- SIZE:镜像大小
查找镜像
$ docker search httpd
拉取镜像
$ docker pull hello-world:latest
上传镜像
- 命令行登录账号:
$ docker login -u username
- 新建一个tag,名字必须跟你注册账号一样
$ docker tag test:v1 username/test:v1
- 推上去
$ docker push username/test:v1
删除镜像
$ docker rmi hello-world
保存镜像
$ docker save -o images.tar hello-world
加载镜像
$ docker load -i images.tar
更新镜像
更新镜像之前,我们需要使用镜像来创建一个容器。
runoob@runoob:~$ docker run -t -i ubuntu:15.10 /bin/bash
root@e218edb10161:/#
在运行的容器内使用 apt-get update
命令进行更新。
在完成操作之后,输入 exit
命令来退出这个容器。
此时 ID 为 e218edb10161
的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit 来提交容器副本。
runoob@runoob:~$ docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8
各个参数说明:
- -m: 提交的描述信息
- -a: 指定镜像作者
- e218edb10161:容器 ID
- runoob/ubuntu:v2: 指定要创建的目标镜像名
我们可以使用 docker images 命令来查看我们的新镜像 runoob/ubuntu:v2:
runoob@runoob:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
runoob/ubuntu v2 70bf1840fd7c 15 seconds ago 158.5 MB
ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB
php 5.6 f40e9e0f10c8 9 days ago 444.8 MB
nginx latest 6f8d099c3adc 12 days ago 182.7 MB
mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB
httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB
ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB
hello-world latest 690ed74de00f 6 months ago 960 B
training/webapp latest 6fae60ef3446 12 months ago 348.8 MB
使用我们的新镜像 runoob/ubuntu 来启动一个容器
runoob@runoob:~$ docker run -t -i runoob/ubuntu:v2 /bin/bash
root@1a9fbdeb5da3:/#
容器
启动容器
$ docker run -it --name [aliasname] hello-world:latest /bin/bash
参数说明:
- -i: 交互式操作
- -t: 终端
- -d: 后台运行
- --name: 为容器命名
- aliasname: 命名的内容
- hello-world: hello-world镜像
- latest: 标签
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
退出容器
$ exit
显示容器
$ docker ps -a
参数说明:
- -a: 所有容器
启动、停止、重启容器
$ docker start [容器 ID/容器别名]
$ docker stop [容器 ID/容器别名]
$ docker restart [容器 ID/容器别名]
进入容器
# 如果从容器退出,容器会停止
$ docker attach [容器 ID/容器别名]
# 如果从容器退出,容器不会停止
$ docker exec -it [容器 ID/容器别名] /bin/bash
导出、导入容器
# 导出容器
$ docker export [容器 ID/容器别名] > [文件名].tar
# 导入容器
# 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:
$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1
删除容器
$ docker rm -f [容器 ID]
参数说明:
- -f: 强制删除