Chinaunix首页 | 论坛 | 博客
  • 博客访问: 28891
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 320
  • 用 户 组: 普通用户
  • 注册时间: 2021-05-11 17:57
文章分类
文章存档

2021年(31)

我的朋友

分类: LINUX

2021-09-09 09:17:07

容器的常用操作

docker run -i -t  /bin/bash

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

实例:

  1. $ docker run -it ubuntu /bin/bash    

  2. root@946be96acd5f:/#      

  3. root@946be96acd5f:/# exit    

  4. exit  

exit后容器将不在运行

docker start -i

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

实例:

  1. # docker ps -a    

  2. CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES    

  3. 648944eeef8a        ubuntu              "/bin/bash"         8 seconds ago       Exited (0) 6 seconds ago                       suspicious_feynman        

  4. root@ubun:~# docker start -i 648944eeef8a    

  5. root@648944eeef8a:/#

docker exec

  1. 通过宿主机在正在运行的容器上执行命令。
    通过宿主机在容器上创建文件

  1. $ docker exec 87cb69be18bb touch /root/abc.txt    

  1. 可通过exec命令从正在运行的容器上申请一个终端,执行shell

  1. $ docker exec -it 87cb69be18bb /bin/bash    

docker ps

默认显示正在运行中的container

docker ps –a

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

  1. $ docker ps    

  2. CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES    

  3. $ docker ps -a    

  4. CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                          PORTS               NAMES    

  5. 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.找出要保存的镜像名称.

  1. $ docker images    

  2. REPOSITORY        TAG               IMAGE ID          CREATED           VIRTUAL SIZE    

  3. memcached         v0.1              291272444a64      7 weeks ago         212 MB

2.备份镜像

  1. $ docker save memcached:v0.1 >memcached_bak.tar

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

  1. $ docker load < memcached_bak.tar

4.查看镜像

  1. $ docker images    

  2. REPOSITORY        TAG               IMAGE ID          CREATED           VIRTUAL SIZE    

  3. memcached         v0.1              291272444a64      7 weeks ago         212 MB

export

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

  1. $ docker ps|grep memcached

2.备份容器

  1. $ docker export memcached > memcached_bak.tar

3.恢复成镜像

  1. $ docker import memcached_bak.tar memcached

4.查看镜像

  1. $ docker images    

  2. REPOSITORY      TAG             IMAGE ID            CREATED              VIRTUAL SIZE    

  3. memcached      latest           51af4462e58b        About a minute ago      250.5 MB

两者区别

导出后再导入(export-import)的镜像会丢失所有的历史和层信息,而保存后再加载(save-load)的镜像没有丢失历史和层 (layer)。这意味着使用导出后再导入的方式,你将无法回滚到之前的层(layer),同时,使用保存后再加载的方式持久化整个镜像,就可以做到层回滚.


未完待续.....

阅读(489) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~