Docker容器构建

◇◆丶佛笑我妖孽 提交于 2019-12-04 10:24:52

        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!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!