栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker镜像的制作

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker镜像的制作

制作apache镜像
基于容器编译安装apache
# 进入容器内配置yum源
[root@localhost ~]# docker run -it --name apache centos /bin/bash
[root@fbd63b817914 ~]# cd /etc/yum.repos.d
[root@fbd63b817914 yum.repos.d]# rm -rf *
[root@fbd63b817914 yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo [root@fbd63b817914 yum.repos.d]# https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
[root@fbd63b817914 yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@fbd63b817914 yum.repos.d]# cd
[root@fbd63b817914 ~]# dnf -y install wget

# 安装并解压httpd所需的包
[root@fbd63b817914 ~]# wget https://downloads.apache.org/apr/apr-1.7.0.tar.gz 
> https://downloads.apache.org/apr/apr-util-1.6.1.tar.gz 
> https://downloads.apache.org/httpd/httpd-2.4.53.tar.gz
[root@fbd63b817914 ~]# tar xf apr-1.7.0.tar.gz 
[root@fbd63b817914 ~]# tar xf apr-util-1.6.1.tar.gz 
[root@fbd63b817914 ~]# tar xf httpd-2.4.53.tar.gz
# 安装开发环境和依赖包
[root@fbd63b817914 ~]# dnf -y groups mark install "Development Tools"
[root@fbd63b817914 ~]# dnf -y install gcc gcc-c++ openssl-devel pcre-devel expat-devel
[root@fbd63b817914 ~]# useradd -r -M -s /sbin/nologin apache
# 编译安装
[root@fbd63b817914 ~]# cd apr-1.7.0
[root@fbd63b817914 apr-1.7.0]# vim ./configure
    cfgfile=${ofile}T
    trap "$RM "$cfgfile"; exit 1" 1 2 15
#   $RM "$cfgfile"			        //注释此行
[root@fbd63b817914 apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@fbd63b817914 apr-1.7.0]# cd /root/apr-util-1.6.1
[root@fbd63b817914 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@fbd63b817914 apr-util-1.6.1]# make && make install
[root@fbd63b817914 apr-util-1.6.1]# ./configure --prefix=/usr/local/apache 
--enable-so 
--enable-ssl 
--enable-cgi 
--enable-rewrite 
--with-zlib 
--with-pcre 
--with-apr=/usr/local/apr 
--with-apr-util=/usr/local/apr-util/ 
--enable-modules=most 
--enable-mpms-shared=all 
--with-mpm=prefork
[root@fbd63b817914 httpd-2.4.53]# make && make install
# 设置映射关系
[root@fbd63b817914 apache]# ln -s /usr/local/apache/include/ /usr/include/apache

# 启动httpd服务
[root@fbd63b817914 apache]# /usr/local/apache/bin/httpd
/usr/local/apache/bin/apachectl
[root@fbd63b817914 apache]# ss -antl
State      Recv-Q      Send-Q           Local Address:Port           Peer Address:Port     Process     
LISTEN     0           128                    0.0.0.0:80                  0.0.0.0:*      
[root@fbd63b817914 apache]# ip a
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
34: eth0@if35:  mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever   
# 测试能否访问
[root@localhost ~]# curl 172.17.0.2

It works!

# 编写启动脚本
[root@036f6267e67a ~]# vim /start.sh
#!/bin/sh
/usr/local/apache/bin/httpd
/bin/bash
[root@036f6267e67a ~]# ls -ld /start.sh 
-rw-r--r--. 1 root root 48 Apr 26 17:55 /start.sh
[root@036f6267e67a ~]# chmod a+x /start.sh 		//给所有用户执行权限
[root@036f6267e67a ~]# ls -ld /start.sh 
-rwxr-xr-x. 1 root root 48 Apr 26 17:55 /start.sh
# 制作httpd镜像(另起一个终端,httpd容器不能停止)
[root@localhost ~]# docker commit -a 'zuoyq <123@456.com>' -c 'CMD ["/bin/bash","/start.sh"]' apache zuoyq/httpd:v1.0
sha256:5a7123f91c02a8b242275bf2bcbc96d0a9d06c97161bebd32f20e44c3671db54
[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
zuoyq/httpd   v1.0      5a7123f91c02   2 minutes ago   691MB
busybox       latest    beae173ccac6   3 months ago    1.24MB
httpd         latest    dabbfbe0c57b   4 months ago    144MB
centos        latest    5d0da3dc9764   7 months ago    231MB

[root@localhost ~]# docker login -u'zuoyq'		//登陆docker账号
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

[root@localhost ~]# docker push zuoyq/httpd:v1.0	//上传镜像
The push refers to repository [docker.io/zuoyq/httpd]
5f2da280ddab: Pushed 
74ddd0ec08fa: Mounted from library/centos 
v1.0: digest: sha256:370ea560347c01570bb76a1f32a091b90b94681718a5b1487e0329f0151651f0 size: 742
# 创建容器
[root@localhost ~]# docker ps
[root@localhost ~]# docker run -itd --name test -p 80:80 zuoyq/httpd:v1.0 /bin/sh
00563439c3d9e030ea4eeb26e1a6077609257d651f7c06befb35620561bcf761
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE              COMMAND     CREATED          STATUS         PORTS                     
00563439c3d9   zuoyq/httpd:v1.0   "/bin/sh"   10 seconds ago   Up 9 seconds   0.0.0.0:80->80/tcp, :::80-

打开本机浏览器测试

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/845261.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号