Docker: 使用技巧整理_20181212_七侠镇莫尛貝

18 篇文章 0 订阅
10 篇文章 0 订阅

1. 查看docker状态:

         资源:docker stats docker_id

         日志: docker logs -f docker_id

2.日志过大,半天不到底咋办:

    1)加--tail参数只看最后100行: docker logs --tail=100 -f docker_id

    2) 清空日志:  docker inspect docker_id|grep Id, 得到docker 的Id, 然后在/var/lib/docker/containers/Id下,找到一个 -json.log,清空之(如果要释放磁盘空间那就再重启一下容器。)

    3)修改docker服务启动参数,限制每个docker容器的日志文件大小和个数:

vi /etc/docker/daemon.json

增加:"log-driver":"json-file", "log-opts":{ "max-size" :"50m","max-file":"1"}

重启docker服务。

具体参考https://www.jianshu.com/p/77226fca5a0c

3.修改了docker内某个文件比如/etc/ssh/sshd_config,结果容器起不来了咋办:

       下载到当前目录:docker cp docker_id:/etc/ssh/sshd_config ./

       改好后再传上去:docker cp ./sshd_config docker_id:/etc/ssh/sshd_config

4.让容器启动后自动运行某个脚本比如/opt/start.sh: docker run -d ....... ubuntu:16.04 /opt/start.sh。(20181214更新)

more run_docker_test.sh 
#!/bin/bash

APP_NAME=docker_test

#创建容器volume目录
APP_DIR=/data/$APP_NAME
#mkdir -p $APP_DIR
SHELL_CMD=$APP_DIR/start.sh

#rm -fr $SHELL_CMD

#创建start.sh
if [ -f "$SHELL_CMD" ];then
        echo $SHELL_CMD "文件存在"
else
        echo $SHELL_CMD "文件不存在,创建一个新的..."
        echo -e "#!/bin/bash\n\nnohup /opt/start_app.sh >/dev/null 2>1&\ntail -f /dev/null">>$SHELL_CMD
        chmod +x $SHELL_CMD 
fi

#停止,删除旧容器
docker stop $APP_NAME
docker rm $APP_NAME 

#启动新容器
docker run -d \
        --hostname $APP_NAME --name $APP_NAME \
        -m 8G \
        --restart always \
        -p 41122:22 -p 41180:8080 -p 41190:9080 -p 41106:3306 -p 41189:389 \
        --volume $APP_DIR:/opt \
        mxb/ubuntu:16.04 /opt/start.sh

 在start.sh里可以做启动ssh,可以启动tomcat,等等。最后可以tail -f /dev/null ,让容器一直在后台运行。

5. 把容器内跑的应用程序都放在/opt下,/opt映射到物理磁盘的/data/docker_name/下,保持容器本身的干净。

6.获取容器的内部IP:docker inspect docker_id|grep IPAddress

7.在物理服务器上安装一个haproxy,用来解决容器新增端口映射问题。

 

# haproxy -v
HA-Proxy version 1.6.3 2015/12/25
Copyright 2000-2015 Willy Tarreau <willy@haproxy.org>

 

# vi /etc/haproxy/haproxy.cfg

listen ea_product
        bind *:65443
        mode tcp
        option tcplog
        balance roundrobin
        server server1 172.17.0.24:8443

8. console窗口太小。增加环境变量。

docker exec -it -e LINES=$(tput lines) -e COLUMNS=$(tput cols) ed08 bash

 

(20210303 新增:)

9.查看容器修改记录:

docker diff mycontainer

 

10.查看镜像修改记录:

docker history

 

99. 其他。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值