性能环境之docker操作指南4(全网最全)

容器的常用操作
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),同时,使用保存后再加载的方式持久化整个镜像,就可以做到层回滚.

未完待续.....

你可能感兴趣的