天天看點

【實戰】制作自定義鏡像

制作xnetd鏡像

制作

its-xnetd:1.0

鏡像

ps:xnetd 是我公司的一個自主研發的消息中間件,可以了解為 mq,本文介紹,如何将公司獨有的組建放入Docker,制作成鏡像。

一、前提說明

1)首先要有xnetd的應用,然後和Dockerfile在同級目錄,詳情如下:

|- Dockerfile
|- xnetd_bin
    \- start.sh ## 啟動xnetd的腳本
    \- .config  ## xnetd相關的配置
    \- xnetd    ## xnetd應用
           

2) .config 配置

[sds]
Level=5
OnlineCheckSecond=100
OnlineEchoSecond=2
LocalTitle=echo;all
LocalGroup=g1
AutoDisconnect=1
cloud=none
;InitTerm=100
AlwaysAuto=1
CutLength=300
DispLevel=5
LogPath=/root/logs/xnetd

[eops]
Level=5
OnlineCheckSecond=100
OnlineEchoSecond=2
LocalTitle=echo;all
LocalGroup=g1
AutoDisconnect=1
cloud=none
;InitTerm=100
AlwaysAuto=1
CutLength=300
DispLevel=5
LogPath=/root/logs/eops/xnetd
           

start.sh 配置

/usr/xnetd_bin/xnetd sds 17300
sleep 2
/usr/xnetd_bin/xnetd eops 13300
sleep 2

           
二、開始制作鏡像<font color="red" size="4">(3步)</font>

1)、編寫Dockerfile檔案

FROM centos:7.4.1708
MAINTAINER Will [email protected]

#上傳安裝xnetd
RUN mkdir  /usr/xnetd_bin
COPY xnetd_bin/xnetd /usr/xnetd_bin/xnetd
COPY xnetd_bin/start.sh /usr/xnetd_bin/start.sh
COPY xnetd_bin/.config /root/.config
RUN mkdir -p /root/logs/eops/xnetd
RUN mkdir /root/logs/xnetd

##開啟端口
EXPOSE 13300  17300

#CMD ["/usr/xnetd_bin/start.sh" , "run"]
CMD sh /usr/xnetd_bin/start.sh && tail -f /root/.config
           

2)、執行build 指令

docker build --rm=true --no-cache=false -t its-xnetd:1.0 .
           

3)、啟動容器

docker run -it -d --name=xnetd  -p 13300:13300 -p 17300:17300 its-xnetd:1.0
           

<font color="red" size="4">建立完成</font>

三、日志記錄

[root@helloword xnetd]# docker build --rm=true --no-cache=false -t its-xnetd:1.0 .
Sending build context to Docker daemon  1.168MB
Step 1/10 : FROM centos:7.4.1708
 ---> 3afd47092a0e
Step 2/10 : MAINTAINER Will [email protected]
 ---> Using cache
 ---> 50450d3a273b
Step 3/10 : RUN mkdir  /usr/xnetd_bin
 ---> Running in 584ed0248fd7
 ---> 6607c76ffc46
Removing intermediate container 584ed0248fd7
Step 4/10 : COPY xnetd_bin/xnetd /usr/xnetd_bin/xnetd
 ---> 5e7eb427b545
Step 5/10 : COPY xnetd_bin/start.sh /usr/xnetd_bin/start.sh
 ---> 1bfe9cd23270
Step 6/10 : COPY xnetd_bin/.config /root/.config
 ---> 706607e875ee
Step 7/10 : RUN mkdir -p /root/logs/eops/xnetd
 ---> Running in 87b62ed416a8
 ---> 3b0a05d932ed
Removing intermediate container 87b62ed416a8
Step 8/10 : RUN mkdir /root/logs/xnetd
 ---> Running in ae25536eb944
 ---> ceb1c31910cf
Removing intermediate container ae25536eb944
Step 9/10 : EXPOSE 13300 17300
 ---> Running in 02750787bf3f
 ---> 0e559c595bb1
Removing intermediate container 02750787bf3f
Step 10/10 : CMD sh /usr/xnetd_bin/start.sh && tail -f /root/.config
 ---> Running in b7bfad96acd7
 ---> 1bc3630a75d4
Removing intermediate container b7bfad96acd7
Successfully built 1bc3630a75d4
Successfully tagged xnetd:latest
[root@helloword xnetd]# docker run -it -d --name=xnetd  -p 13300:13300 -p 17300:17300 its-xnetd:1.0
2aa96230ecd3e68d86ec659307c61d1c22001aa2e65a508b96c6d781ed8a477d
[root@helloword xnetd]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                NAMES
2aa96230ecd3        its-xnetd:1.0               "/bin/sh -c 'sh /u..."   2 seconds ago       Up 1 second         0.0.0.0:13300->13300/tcp, 0.0.0.0:17300->17300/tcp   xnetd