加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

再见 Docker,是时候拥抱下一代容器工具了

发布时间:2019-09-27 01:40:55 所属栏目:优化 来源:iMike
导读:副标题#e# 什么是 Linux 容器? Linux 容器是由 Linux 内核所提供的具有特定隔离功能的进程,Linux 容器技术能够让你对应用及其整个运行时环境(包括全部所需文件)一起进行打包或隔离。从而让你在不同环境(如开发、测试和生产等环境)之间轻松迁移应用的同时,

查看一个运行容器中的进程资源使用情况

  1. $ sudo podman top <container_id> 
  2.   UID   PID  PPID  C STIME TTY          TIME CMD 
  3.     0 31873 31863  0 09:21 ?        00:00:00 nginx: master process nginx -g daemon off; 
  4.   101 31889 31873  0 09:21 ?        00:00:00 nginx: worker process 

停止一个运行中的容器

  1. $ sudo podman stop --latest 

删除一个容器

  1. $ sudo podman rm --latest 

以上这些特性基本上都和 Docker 一样,Podman 除了兼容这些特性外,还支持了一些新的特性。

给容器设置一个检查点

  1. $ sudo podman container checkpoint <container_id> 

需要 CRIU 3.11 以上版本支持,CRIU 项目地址:https://criu.org/

根据检查点位置恢复容器

  1. $ sudo podman container restore <container_id> 

迁移容器

Podman 支持将容器从一台机器迁移到另一台机器。

首先,在源机器上对容器设置检查点,并将容器打包到指定位置。

  1. $ sudo podman container checkpoint <container_id> -e /tmp/checkpoint.tar.gz 
  2. $ scp /tmp/checkpoint.tar.gz <destination_system>:/tmp 

其次,在目标机器上使用源机器上传输过来的打包文件对容器进行恢复。

  1. $ sudo podman container restore -i /tmp/checkpoint.tar.gz 

配置别名

如果习惯了使用 Docker 命令,可以直接给 Podman 配置一个别名来实现无缝转移。你只需要在 .bashrc 下加入以下行内容即可:

  1. $ echo "alias docker=podman" >> .bashrc 
  2. $ source .bashrc 

Podman 如何实现开机重启容器

由于 Podman 不再使用守护进程管理服务,所以不能通过守护进程去实现自动重启容器的功能。那如果要实现开机自动重启容器,又该如何实现呢?

其实方法很简单,现在大多数系统都已经采用 Systemd 作为守护进程管理工具。这里我们就可以使用 Systemd 来实现 Podman 开机重启容器,这里我们以启动一个 Nginx容器为例子。

首先,我们先运行一个 Nginx 容器。

  1. $ sudo podman run -t -d -p 80:80 --name nginx nginx 

然后,在建立一个 Systemd 服务配置文件。

  1. $ vim /etc/systemd/system/nginx_container.service 
  2.  
  3. [Unit] 
  4. Description=Podman Nginx Service 
  5. After=network.target 
  6. After=network-online.target 
  7.  
  8. [Service] 
  9. Type=simple 
  10. ExecStart=/usr/bin/podman start -a nginx 
  11. ExecStop=/usr/bin/podman stop -t 10 nginx 
  12. Restart=always 
  13.  
  14. [Install] 
  15. WantedBy=multi-user.target 

接下来,启用这个 Systemd 服务。

  1. $ sudo systemctl daemon-reload 
  2. $ sudo systemctl enable nginx_container.service 
  3. $ sudo systemctl start nginx_container.service 

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!