docker run xxx 之后,ctrl-c不起作用。
解决:docker run -t xxx,增加-t参数。
这样ctrl-c之后docker container不会stop
2018年3月22日星期四
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
直接在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
先写好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月20日星期二
Download failed : Oracle JDK 7 is NOT installed
ubuntu安装sudo apt-get install oracle-java7-installer失败,参考https://askubuntu.com/questions/453367/download-failed-oracle-jdk-7-is-not-installed
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
在/etc/environment中增加:
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
2018年3月8日星期四
查看docker registry的所有镜像
参考https://stackoverflow.com/questions/31251356/how-to-get-a-list-of-images-on-docker-registry-v2/31750543#31750543
curl -X GET http://localhost:5000/v2/_catalog
curl -X GET http://localhost:5000/v2/your_repo/tags/list
curl -X GET http://localhost:5000/v2/_catalog
curl -X GET http://localhost:5000/v2/your_repo/tags/list
2018年3月6日星期二
linux中nc命令
参考:10 个例子教你学会 ncat (nc) 命令
nc -l port_number,在指定端口监听入站连接。
nc -l -k port_number,-k 参数保证客户端断开之后服务器仍然保持监听而不退出。
nc -l port_number,在指定端口监听入站连接。
nc -l -k port_number,-k 参数保证客户端断开之后服务器仍然保持监听而不退出。
2018年3月5日星期一
docker中--expose、-p参数
EXPOSE或--expose:声明运行时容器提供服务的端口,在运行时并不会因为这个声明应用就会开启这个端口的服务。在 Dockerfile 中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 docker run -P 时,会自动随机映射 EXPOSE 的端口。
-p ip:hostPort:containerPort 参数可以指定宿主机的ip和端口到容器的端口映射。
-p ip:hostPort:containerPort 参数可以指定宿主机的ip和端口到容器的端口映射。
docker容器内连接宿主机
参考:https://stackoverflow.com/questions/24319662/from-inside-of-a-docker-container-how-do-i-connect-to-the-localhost-of-the-mach
docker run 增加 --net=host 参数,docker容器中使用127.0.0.1或者0.0.0.0地址就指向了宿主机。--net 参数值默认是 brige。
如果设置--net=host,那么-p port:port则不生效。
docker run 增加 --net=host 参数,docker容器中使用127.0.0.1或者0.0.0.0地址就指向了宿主机。--net 参数值默认是 brige。
如果设置--net=host,那么-p port:port则不生效。
获取docker container ip地址
参考https://mozillazg.com/2016/01/docker-get-containers-ip-address.html
docker inspect --format '{{.NetworkSettings.IPAddress}}' CONTAINER_ID
docker inspect --format '{{.NetworkSettings.IPAddress}}' CONTAINER_ID
2018年3月2日星期五
查看docker container挂载volume的情况
docker inspect -f {{.Mounts}} CONTAINER_ID
关于docker volume参考:
http://dockone.io/article/128
http://dockone.io/article/129
关于docker volume参考:
http://dockone.io/article/128
http://dockone.io/article/129
2018年3月1日星期四
docker清理命令
参考https://www.fengzifz.com/2017/03/27/clean-docker/
删除所有停止运行的容器
docker rm -v $(docker ps -a -q -f status=exited) 或者 docker container prune
删除所有<none>的镜像
docker rmi $(docker images -q -f dangling=true)
删除所有没用的volume
docker volume rm $(docker volume ls -qf dangling=true) 或者 docker volume prune
docker system prune,清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像
docker rm -v $(docker ps -a -q -f status=exited) 或者 docker container prune
删除所有<none>的镜像
docker rmi $(docker images -q -f dangling=true)
删除所有没用的volume
docker volume rm $(docker volume ls -qf dangling=true) 或者 docker volume prune
docker system prune,清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像
docker save和docker export的区别
参考:https://jingsam.github.io/2017/08/26/docker-save-and-docker-export.html
1. docker save保存的是镜像(image),docker export保存的是容器(container);
2. docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
3. docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。
1. docker save保存的是镜像(image),docker export保存的是容器(container);
2. docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
3. docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。
订阅:
博文 (Atom)