2018年3月22日星期四

docker run之后无法ctrl-c结束

docker run xxx 之后,ctrl-c不起作用。

解决:docker run -t xxx,增加-t参数。

这样ctrl-c之后docker container不会stop

2018年3月21日星期三

配置docker镜像源

参考https://www.jianshu.com/p/84b6fe281b4d

直接在docker pull命令加上镜像地址,临时从该镜像下载相应的docker image
docker pull registry.docker-cn.com/myname/myrepo:mytag

在docker配置文件中(例如/etc/docker/daemon.json)设置默认的镜像地址
{
    "registry-mirrors": ["https://registry.docker-cn.com"]
}

生效配置并重启docker:
systemctl daemon-reload
service docker restart

可选的中国地区docker镜像地址有:
官方镜像:https://registry.docker-cn.com
七牛云镜像:https://reg-mirror.qiniu.com

rules_docker的使用

以python举例。

先写好py_image规则,写法和py_binary几乎一样,需要多加一个main参数指定启动main的文件,通过py_image规则无法指定repo和tag。

如果打包到本地需要自己指定repo和tag的话,只能使用container_bundle,container_bundle中的images参数的key为指定的repo和tag名称,value为对应的py_image或者其他image规则。

container_push用于将镜像推到docker仓库,有两种方式可以指定tag(https://github.com/bazelbuild/rules_docker#varying-image-names)。一种是使用$(tag)变量,然后bazel run --define tag=xxx来指定不同的tag;另一种是使用stamp=True,参考bazel的workspace_status使用:https://docs.bazel.build/versions/master/user-manual.html#workspace_status

2018年3月13日星期二

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

参考https://segmentfault.com/q/1010000011807350?sort=created

在/etc/environment中增加:
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8

一次IT事故的记录

linux系统下用户目录用户自己是必须拥有读、写、可执行权限的,在不知道的情况下用root修改了所有用户目录的权限,去掉了执行权限,导致所有用户都无法登录了。