容器的常用操作
docker run -i -t /bin/bash
使用image创建container并进入交互模式, login shell是/bin/bash
实例:
$ docker run
-
it ubuntu
/
bin
/
bash
root@946be96acd5f
:/#
root@946be96acd5f
:/#
exit
exit
exit后容器将不在运行
docker start -i
启动一个container并进入交互模式
实例:
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
648944eeef8a
ubuntu
"/bin/bash"
8
seconds ago
Exited
(
0
)
6
seconds ago suspicious_feynman
root@ubun
:~#
docker start
-
i
648944eeef8a
root@648944eeef8a
:/#
docker exec
通过宿主机在正在运行的容器上执行命令。
通过宿主机在容器上创建文件
$ docker exec
87cb69be18bb
touch
/
root
/
abc
.
txt
可通过exec命令从正在运行的容器上申请一个终端,执行shell
$ docker exec
-
it
87cb69be18bb
/
bin
/
bash
docker ps
默认显示正在运行中的container
docker ps –a
显示所有的container,包括未运行的 实例:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ docker ps
-
a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
946be96acd5f
ubuntu
"/bin/bash"
About
a minute ago
Exited
(
0
)
About
a minute ago thirsty_mclean
docker ps –l
显示最后一次创建的container,包括未运行的
docker start/stop/restart
开启/停止/重启container
docker容器和镜像迁移
docker的备份方式有export和save两种。
docker export当前状态的容器,通过docker import进行恢复;
docker save针对的是镜像,通过docker load进行恢复。
save
1.找出要保存的镜像名称.
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
memcached v0
.
1
291272444a64
7
weeks ago
212
MB
2.备份镜像
$ docker save memcached
:
v0
.
1
memcached_bak
.
tar
3.恢复镜像
将镜像scp到目标服务器,恢复镜像
$ docker load
<
memcached_bak
.
tar
4.查看镜像
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
memcached v0
.
1
291272444a64
7
weeks ago
212
MB
export
1.找出要保存的容器ID或名称
$ docker ps
|
grep memcached
2.备份容器
$ docker export memcached
memcached_bak
.
tar
3.恢复成镜像
$ docker import memcached_bak
.
tar memcached
4.查看镜像
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
memcached latest
51af4462e58b
About
a minute ago
250.5
MB
两者区别
导出后再导入(export-import)的镜像会丢失所有的历史和层信息,而保存后再加载(save-load)的镜像没有丢失历史和层 (layer)。这意味着使用导出后再导入的方式,你将无法回滚到之前的层(layer),同时,使用保存后再加载的方式持久化整个镜像,就可以做到层回滚.
未完待续.....
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。