Docker 常见问题

Docker 常见问题

问题集合

自定义景象

  1. 运行镜像自动退出

主要原因是docker一个容器运行一个实例,所以docker需要运行一个应用程序,比如我们要安装某个程序,此时可以写一个shell脚本,然后通过entrypoint或者cmd运行,有个小技巧在shell命令里程序运行后使用tail -f或者tail -F进行日志文件跟踪(防止没有程序运行导致docker容器关闭)。

cat>startup.sh<<EOF
#!/bin/bash

if [ -d "/opt/dmdbms/bin" ]; then
	if [ ! -d "/opt/dmdbms/data/DAMENG" ]; then
	   cd /opt/dmdbms/bin
	   ./dminit PATH=/opt/dmdbms/data DB_NAME=DAMENG INSTANCE_NAME=DMSERVER PORT_NUM=5236
	   echo "Init DM success!"
	fi
	
	cd /opt/dmdbms/bin
	echo "Start DmAPService..."
	./DmAPService start
	
	if [ ! -f "/opt/dmdbms/conf/dm.ini" ]; then
	   echo "/opt/dmdbms/conf/dm.ini does not exist, use default dm.ini"
	   ./dmserver /opt/dmdbms/data/DAMENG/dm.ini -noconsole > /opt/dmdbms/log/DmServiceDMSERVER.log 2>&1 &
	else
	   ./dmserver /opt/dmdbms/conf/dm.ini -noconsole > /opt/dmdbms/log/DmServiceDMSERVER.log 2>&1 &
	fi
	echo "Start DMSERVER success!"

else 
	echo "/opt/dmdbms/bin 目录不存在!"
	echo "请确认 /opt/dmdbms 目录是否安装dm7!"
fi

echo 'start container [ok]'
# 此处可以使用tail -F log 跟踪日志文件
tail -f /dev/null
EOF

此处是dm8镜像的startup.sh末尾(可以自行模仿)

echo "Start DMSERVER success!"
wait_dm_running
wait_dm_ready
if [ ! -f "/opt/dmdbms/log/dm_DMSERVER.log" ]; then
   current_year_month=`date +%Y%m`
   DM_LOG=dm_DMSERVER_${current_year_month}.log
   ln -s /opt/dmdbms/log/${DM_LOG} /opt/dmdbms/log/dm_DMSERVER.log
   echo "Finished soft link DM current ${DM_LOG} to dm_DMSERVER.log"
fi
echo "5 0 1 * * root /opt/switchDmLog.sh" >> /etc/crontab
#systemctl restart crond.service
/etc/init.d/cron start
#echo "Start Cron Service"
tail -F /opt/dmdbms/log/dm_DMSERVER.log
tail -f /dev/null
  1. 设置时区
# 通过环境变量设置时区   
TZ=Asia/Shanghai
# 通过环境变量设置时区    
environment:
  - TZ=Asia/Shanghai   # 设置容器时区为CST

# 或者挂载磁盘
-v /etc/timezone:/etc/timezone:ro 
-v /etc/localtime:/etc/localtime:ro
  1. docker中启动服务
# 问题1 docker mount 出现 'mount: permission denied' 需要添加 --privileged
https://blog.csdn.net/weixin_43793181/article/details/118758796

# 问题2 提示 Failed to get D-Bus connection: Operation not permitted
/usr/sbin/init

# 问题3 提示 New main PID 2499 does not belong to service, and PID file is not owned by root. Refusing.
-v /sys/fs/cgroup:/sys/fs/cgroup 

# 后台运行容器
docker run -d --privileged centos:7 /usr/sbin/init

# 进入容器安装
docker exec -it container_id /bin/bash
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker常见问题包括但不限于以下几点: 1. Docker命令调用报错:当使用Docker命令时,可能会遇到报错的情况。要解决这个问题,可以参考引用中提到的使用docker-compose命令提供参数-p来手动指定标签的方法。 2. Docker迁移存储目录:在使用Docker时,有时候需要将存储目录迁移到其他位置。解决这个问题的方法可以参考引用中提到的记录,在其中包括了Docker迁移存储目录的问题及其处理解决方法。 以上是一些关于Docker常见问题的介绍,希望对您有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Docker 常见问题解决](https://download.csdn.net/download/weixin_38741101/12898582)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [24 个常见的 Docker 疑难杂症处理技巧](https://blog.csdn.net/easylife206/article/details/124013730)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值