podman 开机自启

//拉取一个busybox镜像

[root@10 ~]# podman pull busybox
Resolved "busybox" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Trying to pull docker.io/library/busybox:latest...
Getting image source signatures
Copying blob 50e8d59317eb done  
Copying config 1a80408de7 done  
Writing manifest to image destination
Storing signatures
1a80408de790c0b1075d0a7e23ff7da78b311f85f36ea10098e4a6184c200964
[root@10 ~]# podman images
REPOSITORY                 TAG         IMAGE ID      CREATED      SIZE
docker.io/library/httpd    latest      c30a46771695  2 weeks ago  148 MB
docker.io/library/busybox  latest      1a80408de790  3 weeks ago  1.46 MB
[root@10 ~]# podman run -itd --name test docker.io/library/busybox:latest
f84b522bdaa2e07ce88fb03b159d6dad97de012837dba42825a56fcf326d49b1

//创建容器自启动service文件
[root@10 ~]# podman generate systemd --files --name test --new
/root/container-test.service



//将生成的文件放到/usr/lib/systemd/system/目录中
[root@10 ~]# ls
anaconda-ks.cfg  container-test.service
[root@10 ~]# mv container-test.service /usr/lib/systemd/system

重启
[root@10 ~]# systemctl daemon-reload
[root@10 ~]# setenforce 0

//修改selinux
[root@10 ~]# vi /etc/selinux/config 
//设置开机自启
[root@10 ~]#  systemctl enable --now container-test.service 
Created symlink /etc/systemd/system/default.target.wants/container-test.service → /usr/lib/systemd/system/container-test.service.
[root@10 ~]# systemctl status container-test.service 
● container-test.service - Podman container-test.service
   Loaded: loaded (/usr/lib/systemd/system/container-test.service; enabled; vendor>
   Active: active (running) since Tue 2022-05-10 19:36:03 CST; 41s ago
     Docs: man:podman-generate-systemd(1)
  Process: 1351 ExecStartPre=/bin/rm -f /run/container-test.service.ctr-id (code=e>
 Main PID: 1713 (conmon)
    Tasks: 2 (limit: 11047)
   Memory: 74.9M
   CGroup: /system.slice/container-test.service
           └─1713 /usr/bin/conmon --api-version 1 -c 2433a45ab40f4561febb5cfbe7e7e>

### 设置Docker容器开机动 为了使Docker容器能够在系统动时自动运行,需先确认Docker服务已经被设定为随操作系统一同动[^1]。这一步骤至关重要,因为只有当Docker守护程序处于活动状态时,其管理下的任何容器才可能被激活。 对于Linux发行版而言,通常可以通过`systemctl enable docker`命令来实现这一目标;而对于Windows或macOS平台,则应参照各自官方文档中的指导完成相应设置。之后,在确保Docker服务能够顺利开的基础上,还需要满足几个条件: - **前置依赖项准备**:如果有其他外部服务(比如数据库服务器或其他网络组件)是当前要设为自容器所必需的话,那么应当优先处理好这些基础架构层面的工作,使得它们能在目标容器尝试加载前就绪。 - **资源评估与规划**:考虑到实际环境中可能存在多台虚拟机实例或是多个应用同时竞争计算能力的情况,合理预估所需硬件规格以及预留适当余量是非常必要的。这样做不仅有助于提高整体性能表现,也能有效防止因过度消耗而导致的服务中断风险。 最后,针对具体的某个镜像文件创建持久化任务定义,以便每次机器重后都能按照既定策略执行对应的操作逻辑。具体来说就是利用如下所示的方式之一来进行部署: #### 方法一:借助Compose工具简化流程 如果项目结构较为复杂且涉及到了跨多个微服务之间的协作关系,推荐采用[Docker Compose](https://docs.docker.com/compose/)框架辅助构建环境。只需编辑一份YAML格式描述文档即可一次性声明所有关联实体及其属性参数,并指定其中哪些部分应该参与自动化过程。 ```yaml version: '3' services: webapp: image: my-web-app-image restart: always # 关键字用于指示该service始终尝试恢复至健康态 ``` 保存上述配置片段到名为`docker-compose.yml`的本地文件当中去,随后便可通过简单的CLI指令触发整个集群的一次性初始化动作: ```shell $ docker-compose up -d ``` #### 方法二:直接修改容器动选项 当然也可以不引入额外层次而是在调用`docker run`的时候显式加入`--restart=always`标记位,从而达到相同的效果。这种方式更加直观易懂,适合初学者快速上手实践学习之用。 ```shell $ docker run --name some-mysql \ --restart=always \ # 此处即为控制行为的核心开关 -e MYSQL_ROOT_PASSWORD=my-secret-pw \ -d mysql:tag ``` 无论采取哪种途径实施改造措施,都建议定期审查现有方案的有效性和安全性状况,及时作出改进调整以适应不断变化的应用场景需求[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值