Docker 构建自己的容器(学习笔记二)-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

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.

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章