首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

声明:原创作者独家授权,转载需要保留本公众号信息。

容器的常用操作

docker run -i -t /bin/bash

使用image创建container并进入交互模式, login shell是/bin/bash

实例:

代码语言:javascript
复制
$ docker run -it ubuntu /bin/bash     
root@946be96acd5f:/#      
root@946be96acd5f:/# exit     
exit

exit后容器将不在运行

docker start -i

启动一个container并进入交互模式

实例:

代码语言:javascript
复制
# 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

  1. 通过宿主机在正在运行的容器上执行命令。 通过宿主机在容器上创建文件
代码语言:javascript
复制
$ docker exec 87cb69be18bb touch /root/abc.txt
  1. 可通过exec命令从正在运行的容器上申请一个终端,执行shell
代码语言:javascript
复制
$ docker exec -it 87cb69be18bb /bin/bash

docker ps

默认显示正在运行中的container

docker ps –a

显示所有的container,包括未运行的 实例:

代码语言:javascript
复制
$ 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.找出要保存的镜像名称.

代码语言:javascript
复制
$ docker images     
REPOSITORY        TAG               IMAGE ID          CREATED           VIRTUAL SIZE     
memcached         v0.1              291272444a64      7 weeks ago         212 MB

2.备份镜像

代码语言:javascript
复制
$ docker save memcached:v0.1 >memcached_bak.tar

3.恢复镜像 将镜像scp到目标服务器,恢复镜像

代码语言:javascript
复制
$ docker load < memcached_bak.tar

4.查看镜像

代码语言:javascript
复制
$ docker images     
REPOSITORY        TAG               IMAGE ID          CREATED           VIRTUAL SIZE     
memcached         v0.1              291272444a64      7 weeks ago         212 MB

export

1.找出要保存的容器ID或名称

代码语言:javascript
复制
$ docker ps|grep memcached

2.备份容器

代码语言:javascript
复制
$ docker export memcached > memcached_bak.tar

3.恢复成镜像

代码语言:javascript
复制
$ docker import memcached_bak.tar memcached

4.查看镜像

代码语言:javascript
复制
$ 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),同时,使用保存后再加载的方式持久化整个镜像,就可以做到层回滚.

未完待续.....

下一篇
举报
领券