阿里云服务器:Dockerfile利用外网yum源制作镜像,并且安装Apache自启动容器,同时测试外网能连接容器
(1)系统环境:centos7.2
[root@Video ~]#cat /proc/version
Linux version3.10.0-693.11.6.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.520150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Thu Jan 4 01:06:37 UTC 2018
(2)执行命令查看Docker镜像:
[root@Video ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos latest e934aafc2206 4 weeks ago 199 MB
docker.io/busybox latest 8ac48589692a 4 weeks ago 1.15 MB
docker.io/registry latest d1fd7d86a825 3 months ago 33.3 MB
(3)创建一个目录:[存放Docker文件,网络yum文件,脚本]
[root@Video ~]# mkdir dockerbuild/
[root@Video ~]#cd dockerbuild/
(4)添加网络yum源配置文件:这里直接拷贝本地宿主机的yum配置文件
[root@Video mydockerbuild]# cp/etc/yum.repos.d/CentOS-Base.repo ./
(5)Dockerfile文件:
[root@Video mydockerbuild]# catDockerfile
#镜像源
FROM docker.io/centos:latest
#个人信息
MAINTAINER cai_niao.com
#设置时区的终端
ENV TZ "Zsia/Shanghai"
ENV TERM xterm
#执行的命令
RUN rm -rf /etc/yum.repos.d/*
#把当前目录下的localhost.repo追加到镜像的/etc/yum.repo.d/目录下
ADD localhost.repo /etc/yum.repos.d/docker.repo
#执行的命令
RUN yum clean all
RUN yum repolist
RUN yum -y install httpd vim-minimal
RUN sed -i 's/#ServerNamewww.example.com:80/ServerName 127.0.0.1:80/' /etc/httpd/conf/httpd.conf
#端口号,它就是把容器的80端口可以映射到宿主机中
EXPOSE 80
#设置httpd的启动
ENTRYPOINT ["/usr/sbin/httpd","-D", "FOREGROUND"]
(6)生成镜像:
[root@Video mydockerbuild]# dockerbuild -t web/centos:httpd .
Sending build context to Docker daemon7.168 kB
Step 1/12 : FROMdocker.io/centos:latest
---> e934aafc2206
Step 2/12 : MAINTAINER Victorroot@linuxdc.com
---> Running in c93532cc790a
---> de4e6f5b00a5
Removing intermediate containerc93532cc790a
Step 3/12 : ENV TZ"Zsia/Shanghai"
---> Running in 1f285f73e9b6
---> 0337ea9661ef
Removing intermediate container1f285f73e9b6
Step 4/12 : ENV TERM xterm
---> Running in 4cb90cb9de28
---> 48d4732d3825
Removing intermediate container4cb90cb9de28
Step 5/12 : RUN rm -rf/etc/yum.repos.d/*
---> Running in 35d62616c4af
---> 741e05cc8ebc
Removing intermediate container35d62616c4af
Step 6/12 : ADD localhost.repo/etc/yum.repos.d/docker.repo
---> 21f0a8b98a1d
Removing intermediate container43e4f55cb937
Step 7/12 : RUN yum clean all
---> Running in 7ee6d7484b4b
Loaded plugins: fastestmirror, ovl
Cleaning repos: base extras updates
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum,to also free up space taken by orphaned data from disabled or removed repos
---> fbd4a413ec0c
Removing intermediate container7ee6d7484b4b
Step 8/12 : RUN yum repolist
---> Running in 219de24fb0e1
Loaded plugins: fastestmirror, ovl
http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/0c34273ad0292747ee5e15c047d3e51c67ca59861a446972db45d71abacc7ad7-primary.sqlite.bz2:[Errno 12] Timeout onhttp://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/0c34273ad0292747ee5e15c047d3e51c67ca59861a446972db45d71abacc7ad7-primary.sqlite.bz2:(28, 'Connection timed out after 30001 milliseconds')
Trying other mirror.
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
repo id repo name status
base/7/x86_64 CentOS-7 - Base -mirrors.aliyun.com 9591
extras/7/x86_64 CentOS-7 - Extras -mirrors.aliyun.com 448
updates/7/x86_64 CentOS-7 - Updates -mirrors.aliyun.com 2416
repolist: 12455
---> e8e400a23315
Removing intermediate container219de24fb0e1
Step 9/12 : RUN yum -y install httpdvim-minimal
---> Running in 5b2d4a433b79
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cachedhostfile
---> Running in 2025ac466443
………..
………………….
………………………………….
---> d8d219ac05f3
Removing intermediate container2025ac466443
Step 11/12 : EXPOSE 80
---> Running in 0ac6a636bd7f
---> 8593cfa84611
Removing intermediate container0ac6a636bd7f
Step 12/12 : ENTRYPOINT/usr/sbin/httpd -D FOREGROUND
---> Running in f50a0db6ab32
---> 98982990364d
Removing intermediate containerf50a0db6ab32
Successfully built 98982990364d
(7)查看仓库的镜像
[root@Video mydockerbuild]# dockerimages
REPOSITORY TAG IMAGE ID CREATED SIZE
web/centos httpd 98982990364d About an hour ago 457 MB
docker.io/centos latest e934aafc2206 4 weeks ago 199 MB
docker.io/busybox latest 8ac48589692a 4 weeks ago 1.15 MB
docker.io/registry latest d1fd7d86a825 3 months ago 33.3 MB
(8)运行容器并将宿主机的8081端口映射到容器里去
[root@Video mydockerbuild]# docker run-d -p 8081:80 web/centos:httpd
[root@Video mydockerbuild]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1668ac76beb2 web/centos:httpd "/usr/sbin/httpd -..." About a minute ago Up About a minute 0.0.0.0:8081->80/tcp jovial_golick
(9)进入容器
[root@Video mydockerbuild]# dockerexec -it 1668 /bin/bash
[root@1668ac76beb2 /]# cd/var/www/html/
[root@1668ac76beb2 html]# echo"<h1>Hello Woeld</h1>" > index.html
(10)宿主机访问:
[root@Video mydockerbuild]# curlhttp://宿主机ip:8081
<h1>Hello Woeld</h1>
在浏览器输入宿主机ip加端8081端口访问测试:
注意:不能访问可能是阿里云的安全组没有配置:
登录阿里云平台配置
阅读更多
- 利用Dockerfile制作node+nginx应用自启动镜像
- 使用Dockerfile创建支持ssh服务自启动的容器镜像
- Docker使用Dockerfile创建支持ssh服务自启动的容器镜像
- Docker使用Dockerfile创建支持ssh服务自启动的容器镜像
- Docker入门学习(4)----Dockerfile制作第一个镜像和容器中的第一个javaweb应用
- docker 安装 创建支持ssh服务的镜像 创建nginx服务的镜像 用dockerfile制作nginx镜像
- Windows10下的docker安装与入门 (三) 创建自己的docker镜像并且在容器中运行它
- Docker使用Dockerfile创建支持ssh服务自启动的容器镜像
- Docker使用Dockerfile创建支持ssh服务自启动的容器镜像
- Docker的安装和镜像管理并利用Docker容器实现nginx的负载均衡、动静分离 Docker的安装 一、Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用
- docker实战1 (docker-toolbox的安装,docker基础命令详解[运行,容器导入/导出,镜像导入/导出,数据卷,网络],构建100个docker实例的测试环境)
- docker原始镜像启动容器并创建Apache服务器实现反向代理
- 利用Dockerfile创建镜像并生成容器
- 使用Dockerfile构建支持ssh服务自启动的容器镜像
- 网络异步连接参数解析——利用配置好的APache本地服务器做测试
- Docker使用Dockerfile创建支持ssh服务自启动的容器镜像
- Docker镜像的制作、上传、拉取和部署(利用阿里云)
- Docker实践(三)应用场景(创建私有库、用dockerfile制作自己应用镜像、利用私有库发布)
- Centos7使用Dockerfile创建apache镜像和容器
- linux docker安装 制作Elasticsearch容器镜像 并上传docker hub