Docker 构建自己的容器(学习笔记二)

简介: Dockerfile-------------------------------------------------------------------------------------------------------------------...

Dockerfile

---------------------------------------------------------------------------------------------------------------------

首先需要的包和dockerfile放在一起

[root@localhost docker-file]# ls

Dockerfile nginx-1.9.3.tar.gz pcre-8.37.tar.gz

[root@localhost docker-file]# pwd

/opt/docker-file

[root@localhost docker-file]#

---------------------------------------------------------------------------------------------------------------------

创建dockerfile

[root@localhost docker-file]# vim Dockerfile

#base images,name or id 可以是镜像名字或者镜像ID

FROM 3bee3060bfc8

#maintainer 作者

MAINTAINER wangzz

#add 把包添加到容器的指定目录,如果是tar包会自动解压

ADD pcre-8.37.tar.gz /usr/local/src

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

#run 在容器里运行命令安装nginx需要软件

RUN yum install -y wget gcc gcc-c++ make openssl-devel

#run 在容器里运行命令创建用户

RUN useradd -s /sbin/nologin -M www

#workdir 相当于cd到这个目录

WORKDIR /usr/local/src/nginx-1.9.3

#run 在容器里运行命令进行编译安装

RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.37 && make && make install

#run 在容器里运行命令更改nginx配置文件,使其前台运行

RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf

#env 将nginx启动命令加到环境变量里

ENV PATH /usr/local/nginx/sbin:$PATH

#映射80端口

EXPOSE 80

执行nginx命令

CMD ["nginx"]

---------------------------------------------------------------------------------------------------------------------

执行dockerfile

[root@localhost docker-file]# docker build -t my-nginx-1:v1 /opt/docker-file/

当成功后会出现这个,说明执行成功

Successfully built 21273b8e163a

---------------------------------------------------------------------------------------------------------------------

查看镜像

[root@localhost docker-file]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

my-nginx-1 v1 21273b8e163a 14 minutes ago 429.1 MB

---------------------------------------------------------------------------------------------------------------------

使用创建好的镜像启动容器

[root@localhost docker-file]# docker run -dit --name mynginx 21273b8e163a

---------------------------------------------------------------------------------------------------------------------

查看运行的容器

[root@localhost docker-file]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

aa30accbfc06 21273b8e163a "nginx" 3 seconds ago Up 2 seconds 80/tcp mynginx

---------------------------------------------------------------------------------------------------------------------

访问这个容器的80端口,看nginx是否安装启动成功

[root@localhost docker-file]# curl 172.17.0.3

Welcome to nginx!

body {

width: 35em;

margin: 0 auto;

font-family: Tahoma, Verdana, Arial, sans-serif;

}

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and

working. Further configuration is required.

For online documentation and support please refer to

nginx.org.

Commercial support is available at

nginx.com.

Thank you for using nginx.

目录
相关文章
|
6月前
|
人工智能 前端开发 Docker
从本地到云端:用 Docker Compose 与 Offload 构建可扩展 AI 智能体
在 AI 智能体开发中,开发者常面临本地调试与云端部署的矛盾。本文介绍如何通过 Docker Compose 与 Docker Offload 解决这一难题,实现从本地快速迭代到云端高效扩容的全流程。内容涵盖多服务协同、容器化配置、GPU 支持及实战案例,助你构建高效、一致的 AI 智能体开发环境。
582 2
从本地到云端:用 Docker Compose 与 Offload 构建可扩展 AI 智能体
|
6月前
|
Kubernetes Devops Docker
Kubernetes 和 Docker Swarm:现代 DevOps 的理想容器编排工具
本指南深入解析 Kubernetes 与 Docker Swarm 两大主流容器编排工具,涵盖安装、架构、网络、监控等核心维度,助您根据团队能力与业务需求精准选型,把握云原生时代的技术主动权。
588 115
|
6月前
|
JavaScript Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
474 100
|
6月前
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
436 99
|
6月前
|
安全 Go Docker
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
|
5月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
5月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
674 6