九、使用dockerfile制作镜像及安装配置harbor服务

1、安装配置docker并准备基础镜像

1.1 环境准备

Ubuntu 18.04 :192.168.7.38

1.2 Ubuntu安装docker并启动

<root@ubuntu183 ~>#sudo apt-get update

<root@ubuntu183 ~>#sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

<root@ubuntu183 ~>#curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

OK

<root@ubuntu183 ~>#sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

<root@ubuntu183 ~>#sudo apt-get -y update

<root@ubuntu183 />#sudo apt-get -y install docker-ce

<root@ubuntu183 />#docker --version

Docker version 19.03.11, build 42e35e61f3

<root@ubuntu183 />#systemctl start docker

1.3 docker 镜像加速配置

http://cr.console.aliyun.com获取加速地址

<root@ubuntu183 />#cat /etc/docker/daemon.json

{

  "registry-mirrors": ["https://1sffmjxd.mirror.aliyuncs.com","https://registry.docker-cn.com"]

}

<root@ubuntu183 />#systemctl daemon-reload

<root@ubuntu183 />#sudo systemctl restart docker

1.4 使用dockerfile制作centos基础镜像

下载centos镜像

<root@ubuntu183 centos>#docker pull centos:centos7

<root@ubuntu183 centos>#docker images

REPOSITORY          TAG                IMAGE ID            CREATED            SIZE

centos              centos7            b5b4d78bc90c        3 months ago        203MB

启动并查看centos版本

<root@ubuntu183 centos>#docker run -it --rm docker.io/centos:centos7 /bin/bash

[root@6fac768a0493 /]# cat /etc/redhat-release

CentOS Linux release 7.8.2003 (Core)

[root@6fac768a0493 /]# exit

1.5 创建相关目录

<root@ubuntu183 />#mkdir -pv /opt/dockerfile/{web/{nginx,tomcat,jdk,apache},system/{centos,ubuntu,redhat}}

mkdir: created directory '/opt/dockerfile'

mkdir: created directory '/opt/dockerfile/web'

mkdir: created directory '/opt/dockerfile/web/nginx'

mkdir: created directory '/opt/dockerfile/web/tomcat'

mkdir: created directory '/opt/dockerfile/web/jdk'

mkdir: created directory '/opt/dockerfile/web/apache'

mkdir: created directory '/opt/dockerfile/system'

mkdir: created directory '/opt/dockerfile/system/centos'

mkdir: created directory '/opt/dockerfile/system/ubuntu'

mkdir: created directory '/opt/dockerfile/system/redhat'

1.6 制作centos基础镜像

创建Dockerfile文件

<root@ubuntu183 />#cd /opt/dockerfile/system/centos

<root@ubuntu183 centos>#cat Dockerfile

from centos:centos7

MAINTAINER  kong kongxuc@163.com

RUN yum install epel-release -y  && yum  install  vim iotop bc gcc gcc-c++ glibc glibc-devel pcre \

pcre-devel openssl  openssl-devel zip unzip zlib-devel  net-tools \

lrzsz tree ntpdate telnet lsof tcpdump wget libevent libevent-devel \

bc  systemd-devel bash-completion traceroute -y &&  useradd nginx -u 2019 && useradd tomcat -u  2020 &&  rm -rf /etc/localtime && ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

创建build脚本

<root@ubuntu183 centos>#cat build-command.sh

#!/bin/bash

docker build -t  centos-base:7.8  .

<root@ubuntu183 centos>#sh build-command.sh

查看镜像



2、使用dockerfile制作nginx+php-fpm镜像,实现lnmp

2.1 查看nginx目录文件


2.2 创建Dockerfile文件

<root@ubuntu183 />#cd /opt/dockerfile/web/nginx

<root@ubuntu183 nginx>#cat Dockerfile

FROM centos-base:7.8

MAINTAINER  kong kongxuc@163.com

RUN  yum install -y wget vim pcre unzip pcre-devel openssl openssl-devel libicu-develgcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel  #安装相关依赖

ADD php-7.2.31.tar.gz /usr/local/src/

ADD nginx-1.14.2.tar.gz /usr/local/src/

RUN cd /usr/local/src/php-7.2.31 && ./configure --prefix=/apps/php --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-pear --with-curl --with-png-dir --with-freetype-dir --with-iconv --with-mhash --with-zlib --with-xmlrpc --with-xsl --with-openssl --with-mysqli --with-pdo-mysql --disable-debug --enable-zip --enable-sockets --enable-soap --enable-inline-optimization --enable-xml --enable-ftp --enable-exif --enable-wddx --enable-bcmath --enable-calendar --enable-shmop --enable-dba --enable-sysvsem --enable-sysvshm --enable-sysvmsg && make && make install && cd /apps/php/etc/php-fpm.d/ && cp /usr/local/src/php-7.2.31/php.ini-production /apps/php/etc/php.ini && useradd www -s /sbin/nologin -u 1001 && mkdir /apps/php/log/ && cp /apps/php/etc/php-fpm.conf.default /apps/php/etc/php-fpm.conf && ln -sv /apps/php/sbin/php-fpm /usr/sbin/php-fpm 

COPY wordpress-5.4.1.zip /data/nginx/

COPY www.conf /apps/php/etc/php-fpm.d/

RUN cd /usr/local/src/nginx-1.14.2 && ./configure --prefix=/apps/nginx  --user=www --group=www  --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module && make && make install && ln -sv /apps/nginx/sbin/nginx /usr/sbin/nginx 

RUN cd /data/nginx/ && unzip wordpress-5.4.1.zip && chown www.www /data/nginx/wordpress/ /apps/nginx/ -R

COPY wp-config.php /data/nginx/wordpress/

COPY nginx.conf /apps/nginx/conf

COPY start.sh  /data/


EXPOSE 80 443 9000

CMD ["/data/start.sh"]

<root@ubuntu183 nginx>#cat start.sh

#!/bin/bash

php-fpm -c /apps/php/etc/php.ini

nginx

2.3 创建build脚本

<root@ubuntu183 nginx>#cat build-command.sh

#!/bin/bash

TAG=$1

docker build  -t nginx:$1 .

2.4 制作镜像

root@ubuntu183 nginx>#sh build-command.sh lnmp

查看镜像


2.5 启动并验证(mysql设置见一)

<root@ubuntu183 nginx>#docker run -it  -p 80:80 -d ea622adb49e0

9f52ab7dd28e2c77322f96e685e8dccb244d032703e051f014ac22773693117c

访问:http://192.168.7.38/



3、使用dockerfile制作tomcat镜像,并实现对jsp测试页访问

3.1查看tomcat目录文件



3.2 创建Dockerfile文件

<root@ubuntu183 tomcat>#cat Dockerfile

FROM  centos-base:7.8

MAINTAINER  kong kongxuc@163.com

ADD jdk-8u192-linux-x64.tar.gz /usr/local/src 

RUN ln -sv /usr/local/src/jdk1.8.0_192 /usr/local/jdk

ADD profile /etc/profile

ENV JAVA_HOME /usr/local/jdk

ENV JRE_HOME $JAVA_HOME/jre

ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/

ENV PATH $PATH:$JAVA_HOME/bin

ADD  apache-tomcat-8.5.37.tar.gz /apps

RUN ln -sv /apps/apache-tomcat-8.5.37 /apps/tomcat

ADD code.tar.gz /data/tomcat/webapps/app1

ADD run_tomcat.sh /apps/tomcat/bin/run_tomcat.sh

ADD server.xml  /apps/tomcat/conf

RUN chown -R  tomcat.tomcat /apps/apache-tomcat-8.5.37 /apps/tomcat  /data/tomcat

EXPOSE 8080 8443

CMD ["/apps/tomcat/bin/run_tomcat.sh"]

<root@ubuntu183 tomcat>#cat run_tomcat.sh

#!/bin/bash

source /etc/profile

echo "1.1.1.1 www.magedu.net" >> /etc/hosts

su - tomcat -c "/apps/tomcat/bin/catalina.sh start"

#su - tomcat -c "/apps/tomcat/bin/catalina.sh  run"

tail -f /etc/hosts

3.3 创建build脚本

<root@ubuntu183 tomcat>#cat build-command.sh

#!/bin/bash

docker build -t tomcat:v1 .

3.4制作镜像并查看镜像

<root@ubuntu183 tomcat>#sh build-command.sh

查看镜像


3.5启动并验证

<root@ubuntu183 tomcat>#docker run -it  -p 8080:8080 -d 0ea9aea6edc9

798be86577e388175165d4c7455f1b9e2fa04326f0156ba052306b3e669c6dd1

访问:http://192.168.7.38:8080/app1/


4、安装配置harbor服务,并将打包好的镜像提交到harbor仓库(待完成)

er run -it  -p

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343