前言
这里记录自己常用的一些实战技巧.
技巧一
容器执行指定命令并后台运行
容器是否会长久运行,是和 docker run 指定的命令有关,和 -d 参数无关.
我就有以下场景需求.制作一个squid镜像,并在运行容器后,容器里执行squid start命令.
一般需要让容器可以后台长久运行,需要指定/bin/bash指令.1
$ docker run -ti --name [容器名] -d [镜像名] /bin/bash
方式一:通过Dockerfile来build
利用ENTRYPOINT实现1
2
3
4
5
6
7
8
9
10FROM centos:7
RUN yum install -y squid
# ip高匿与端口
RUN echo 'request_header_access Via deny all' >> /etc/squid/squid.conf \
&& echo 'request_header_access X-Forwarded-For deny all' >> /etc/squid/squid.conf \
&& echo 'request_header_access From deny all' >> /etc/squid/squid.conf \
&& sed -i 's/http_access deny all/http_access allow all/g' /etc/squid/squid.conf \
&& sed -i 's/http_port 3128/http_port 57112/g' /etc/squid/squid.conf
ENTRYPOINT /usr/sbin/squid start && /bin/bash # 这个是重点
EXPOSE 57112
方式二:使用supervisor(有问题,待修改)
1、容器中需要安装supervisor服务;
2、上传本地supervisor配置文件1
2
3
4
5
6
7
8
9
10
11FROM centos:7
RUN yum install -y squid python-setuptools
RUN easy_install supervisor
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# ip高匿与端口
RUN echo 'request_header_access Via deny all' >> /etc/squid/squid.conf \
&& echo 'request_header_access X-Forwarded-For deny all' >> /etc/squid/squid.conf \
&& echo 'request_header_access From deny all' >> /etc/squid/squid.conf \
&& sed -i 's/http_access deny all/http_access allow all/g' /etc/squid/squid.conf \
&& sed -i 's/http_port 3128/http_port 57112/g' /etc/squid/squid.conf
EXPOSE 57112
supervisor配置文件
1 | [supervisord] |
技巧二
Docker Hub 自动构建
- 参考:https://blog.csdn.net/u010246789/article/details/54234217
- http://imquanquan.net/archives/pull-images-to-dockerhub-and-autobuild.html
技巧三
本地阅读Docker官方文档
1 | # 本地运行Docker官方文档网站 |