Docker轻量级的系统容器,方便部署调试,CentOS为常用服务端生产环境,如何通过纯净的CentOS系统构建Docker服务呢?CentOS官方为我们提供了基础的Docker容器,参考地址为:https://hub.docker.com/r/library/centos/。
首先准备基础容器Dockerfile
FROM centos:7.3.1611
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \
systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]
然后build镜像文件:
docker build --rm -t local/centos7-systemd:7.3.1611 .
镜像构建成功后运行docker images如下:
上述显示则表示基础容器构建成功了。
然后基于docker我们可以构建自定义的容器:
然后构建这个容器Dockefile如下:
FROM local/centos7-systemd:7.3.1611
RUN yum install -y libpcap-devel ; yum -y install gcc gcc-c++ kernel-devel ; yum clean all;
ADD go1.9.linux-amd64.tar.gz /usr/local/
ENV GOROOT /usr/local/go
ENV GOPATH /root/go
ENV PATH $GOROOT/bin:$PATH
RUN mkdir $GOPATH
RUN yum install -y epel-release;yum install -y lz4-devel;
COPY confluent.repo /etc/yum.repos.d/
RUN yum clean all;yum install -y librdkafka-devel;
CMD ["/usr/sbin/init"]
运行创建命令
$ docker build --rm -t local/c7-systemd-golang .
构建成功后可以运行这个容器了
$ sudo docker run --restart always --name centos7-golang -v /opt/dockerData/centos7-golang/go:/root/go -e GOPATH=/root/go -d local/c7-systemd-golang
最后进入容器测试应用OK!
来源:CSDN
作者:FunySunny
链接:https://blog.csdn.net/caizhengwu/article/details/79371445