如何构建Docker容器
admin
2023-02-25 15:00:06
0

一.构建Nginx容器

Nginx是一款轻量级的WEB服务器,也是一 款优秀 的反向代理服务器. Nginx 服务占用内存少,并发能力强,深受国内外用户的欢迎。下面使用Dockerfile文件的方式来创建带有Nginx服务的Docker镜像。

1.下载基础镜像
下载一个创建Nginx镜像的基础镜像centos镜像:

[root@localhost media]# systemctl start docker
[root@localhost media]# docker load < centos

2.建立工作目录
创建工作目录

[root@localhost /]# mkdir nginx
[root@localhost /]# cd nginx

3.创建并编写Dockerfile文件

[root@localhost nginx]# vim Dockerfile

FROM centos  \\设置基础镜像
MAINTAINER the contos projec  \\维护该镜像用户信息
RUN yum install -y wget proc-devel net-tools gcc zlib zlib-devel
make openssl-devel   \\安装相关依赖包
RUN wget http://nginx.org/download/nginx-1.9.7.tar.gz  
RUN tar zxf nginx-1.9.7.tar.gz   \\下载并解压源码包
WORKDIR nginx-1.9.7  
RUN ./configure --prefix=/usr/local/nginx && make && make install  \\编译安装Nginx
EXPOSE 80
EXPOSE 443   \\开启80和443端口
RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf
\\复制服务启动脚本并设置权限
WORKDIR /root/nginx
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]  \\启动容器时执行脚本

4.编写执行脚本内容

[root@localhost nginx]# vim run.sh

#!/bin/bash
/usr/local/nginx/sbin/nginx

5.生成镜像

[root@localhost nginx]# docker build -t nginx:xws .  \后面有个点,千万不要忘记

6.启动容器进行测试

[root@localhost nginx]# docker run -d -P nginx:xws  \\-P为映射随机端口
4794d0f564c93f09827d33f70be21f3893733648a56e4d3985f82611efb2aa0b

可以看到端口映射为32769

[root@localhost nginx]# docker ps -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                           NAMES
4794d0f564c9        nginx:xws           "/run.sh"           13 minutes ago      Up 13 minutes       0.0.0.0:32769->80/tcp, 0.0.0.0:32768->443/tcp   optimistic_goldberg

验证

如何构建Docker容器

二.构建Tomcat容器

Tomcat是一个免费开源的轻量级Web服务器,在中小型企业和并发访问量不高的场合普遍使用,是开发和调试JSP程序的首选。下面使用Dockerfile文件的方式来创建带有Tomcat服务的Docker镜像。

1.创建工作目录

[root@localhost /]# mkdir tomcat
[root@localhost /]# cd tomcat/
[root@localhost tomcat]# cp /media/jdk-8u91-linux-x64.tar.gz .
[root@localhost tomcat]# ls
jdk-8u91-linux-x64.tar.gz

2.创建Dockerfile文件

[root@localhost tomcat]# vim Dockerfile
FROM centos    \\基础镜像
MAINTAINER the centos project \\维护该镜像用户信息
ADD jdk1.8.0_91 /usr/local/jdk-8u91  \\设置jdk环境变量
ENV JAVA_HOME /usr/local/jdk-8u91
ENV JAVA_BIN /usr/local/jdk-8u91/bin
ENV JAVA_HOME /usr/local/jdk-8u91/jre
ENV PATH $PATH:/usr/local/jdk-8u91/bin:/usr/local/jdk-8u91/jre/bin
ENV CLASSPATH /usr/local/jdk-8u91/jre/bin:/usr/local/jdk-8u91/lib:/usr/local/jdk-8u91/jre/lib/charsets.jar
RUN yum install -y wget     \\安装wget工具
RUN wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.49/bin/apache-tomcat-8.5.49.tar.gz
RUN tar zxf apache-tomcat-8.5.49.tar.gz
RUN mv apache-tomcat-8.5.49 /usr/local/tomcat
EXPOSE 8080 
ADD run.sh /run.sh    \\启动容器时添加并执行脚本
RUN chmod 775 /run.sh
CMD ["/run.sh"]

3.编写执行脚本内容

[root@localhost tomcat]# vim run.sh
#!/bin/bash
/usr/local/tomcat/bin/startup.sh
tailf /run

4.用Dockerfile生成镜像

[root@localhost tomcat]# docker build -t tomcat:aaa .
\后面的点不能少

5.运行容器并验证

[root@localhost tomcat]# docker run -d --name asd -p 80:8080 tomcat:aaa

如何构建Docker容器

三.构建mysql容器

MySQL是当下最流行的关系型数据库,所使用的SQL语言是用于访问数据库的最常用标准化语言,MySQL具有体积小、速度快.成本低的优势,成为中小型企业首选的数据库。下面使用Dockerfile文件的方式来创建带有MySQL服务的Docker镜像。

1.下载基础镜像并创建工作目录
下载镜像命令用:docker pull docker.io

[root@localhost /]# cd /media/
[root@localhost media]# ls
centos  centos6  jdk-8u91-linux-x64.tar.gz
[root@localhost media]# docker load < centos6
5d574ede99e4: Loading layer   202 MB/202 MB
b077477046f8: Loading layer 35.54 MB/35.54 MB
b244861945e8: Loading layer 2.048 kB/2.048 kB
Loaded image: docker.io/guyton/centos6:latest
[root@localhost media]# mkdir /mysql
[root@localhost media]# cd /mysql/
[root@localhost mysql]#

2.创建Dockerfile文件

[root@localhost mysql]# vi Dockerfile

FROM guyton/centos6   \\设置基础镜像
MAINTAINER the centos6   维护镜像的用户信息
RUN yum install -y mysql mysql-server
RUN /etc/init.d/mysqld start && \   \\开启MySQL服务进行授权
mysql -e "grant all privileges on *.* to 'root'@'%' identified by '123456';" && \
mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by '123456';"
EXPOSE 3306   \\开启3306端口
CMD ["mysqld_safe"]     \\运行初始化脚本mysql_safe

3.用Dockerfile生成镜像

[root@localhost mysql]# docker build -t mysql:bbb .
\后面的点不能少

4.运行容器并验证

[root@localhost mysql]# docker run -d --name mysql -P mysql:bbb

5.验证

[root@localhost mysql]# mysql -h 192.168.6.132 -u root -P 32271 -p123456

此处使用MysQL命令连接容器数据库时需要在本地系统使用
yum install mysql安装mariaDB客户端。

相关内容

热门资讯

人民日报刊文:扫码用餐 吃得“... 河南信阳推进公务接待改革扫码用餐 吃得“明白”(厉行节约 反对浪费)本报记者 王乐文 毕京津《人民日...
活动回顾:心灵律动·刚柔共生 心灵律动 - 活动回顾 - “五一”期间, 东莞市工人文化宫连续举办了两场 “心灵律动·刚柔共生”心...
商业航天政策利好 全国首个卫星... 来源:21世纪经济报道 21世纪经济报道记者周慧 5月6日,工业和信息化部官网消息称,工业和信息化部...
伊朗确认前往美国参加世界杯:将... 当地时间5月6日,伊朗国家足球队主教练在接受采访时表示,伊朗国家足球队将于美加墨世界杯开始前14天抵...
雷达、机库、营房、燃料库、飞机... 据《华盛顿邮报》5月6日报道,通过卫星影像分析发现,自2月28日战事爆发以来,伊朗空袭已在中东美军军...
从买买买到租租租,“租用一代”... “五一”假期还在路上,年轻人已经“租”起来了。 “租三天,不到300块钱。”五一放假前一周,清清已给...
【品牌】摩托罗拉大折叠屏新机定... 此前联想预热将于5月19日19点举行联想天禧AI一体多端全场景新品超能之夜活动,届时将带来多款新品,...
常州欣隽益取得接线端子用快速冲... 国家知识产权局信息显示,常州欣隽益科技有限公司取得一项名为“接线端子用快速冲切装置”的专利,授权公告...
美媒:特朗普在结束伊朗战争问题... 据“国会山”网站5月6日报道,周二晚间,美国总统特朗普突然宣布终止旨在打破伊朗对霍尔木兹海峡掌控的军...
和创硅材料取得熔融石英制品擦洗... 国家知识产权局信息显示,东海县和创硅材料有限公司取得一项名为“一种熔融石英制品的擦洗脱泥装置”的专利...