[root@localhost ~]# docker pull centos:8 8: Pulling from library/centos Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 Status: Image is up to date for centos:8 docker.io/library/centos:8创建一个带有存储卷的容器
这里我们使用的是指定存储卷方法
[root@localhost ~]# docker run -it --name httpd --network host -v /usr/src:/usr/src centos:8上传包
[root@localhost ~]# ls /usr/src/ apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz debug httpd-2.4.48.tar.gz kernels部署
[root@localhost ~]# cd /usr/src/
[root@localhost src]# tar xf apr-1.7.0.tar.gz
[root@localhost src]# tar xf apr-util-1.6.1.tar.gz
[root@localhost src]# tar xf httpd-2.4.48.tar.gz
[root@56b673ad4dc4 /]# ls /usr/src/
apr-1.7.0 apr-1.7.0.tar.gz apr-util-1.6.1 apr-util-1.6.1.tar.gz debug httpd-2.4.48 httpd-2.4.48.tar.gz kernels
//安装开发工具包
[root@56b673ad4dc4 /]# yum -y groups mark install 'Development Tools'
Failed to set locale, defaulting to C.UTF-8
CentOS Linux 8 - AppStream 2.1 MB/s | 8.2 MB 00:03
CentOS Linux 8 - baseOS 2.6 MB/s | 3.5 MB 00:01
CentOS Linux 8 - Extras 11 kB/s | 10 kB 00:00
Dependencies resolved.
===========================================================================================================================================
Package Architecture Version Repository Size
===========================================================================================================================================
Installing Groups:
Development Tools
Transaction Summary
===========================================================================================================================================
Complete!
//安装依赖包
[root@56b673ad4dc4 /]# yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make
//源码安装apr
[root@56b673ad4dc4 /]# cd /usr/src/
[root@56b673ad4dc4 src]# cd apr-1.7.0
[root@56b673ad4dc4 apr-1.7.0]# vim configure
cfgfile=${ofile}T
trap "$RM "$cfgfile"; exit 1" 1 2 15
$RM "$cfgfile" //删掉此行
[root@56b673ad4dc4 apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@56b673ad4dc4 apr-1.7.0]# make && make install
//编译安装apr-util
[root@56b673ad4dc4 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
//编译安装httpd
[root@56b673ad4dc4 httpd-2.4.48]# ./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@56b673ad4dc4 httpd-2.4.48]# make && make install
[root@56b673ad4dc4 httpd-2.4.48]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@56b673ad4dc4 httpd-2.4.48]# source /etc/profile.d/httpd.sh
[root@56b673ad4dc4 httpd-2.4.48]# ln -s /usr/local/apache/include/ /usr/include/httpd
[root@56b673ad4dc4 httpd-2.4.48]# vim /etc/man_db.conf
[root@56b673ad4dc4 httpd-2.4.48]# cat /etc/man_db.conf
#
MANDATORY_MANPATH /usr/man
MANDATORY_MANPATH /usr/share/man
MANDATORY_MANPATH /usr/local/share/man
MANDATORY_MANPATH /usr/local/apache/man
//去掉注释
[root@56b673ad4dc4 httpd-2.4.48]# vim /usr/local/apache/conf/httpd.conf
ServerName www.example.com:80
//启动apache
[root@56b673ad4dc4 httpd-2.4.48]# apachectl start
[root@56b673ad4dc4 httpd-2.4.48]# ss -anlt
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@56b673ad4dc4 httpd-2.4.48]# curl http://127.0.0.1:80
It works!
打包成镜像
[root@localhost ~]# docker ps ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b21f5fe3b0bc xaw/httpd:v1.0 "/bin/bash" 24 minutes ago Up 24 minutes httpd2 [root@localhost ~]# docker commit -p -c 'CMD ["/bin/bash"," apachectl start"]' b21f5fe3b0bc xaw/httpd:v1.0 sha256:ead1ca35e71f44ef9b1de16accee22bcf2dd58d44f7f959f8664 b08c7a4e8557 [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE xaw/httpd v1.0 ead1ca35e71f 7 seconds ago 607MB安装nfs
新打开一台虚拟机
[root@nfs ~]# mkdir /nfs [root@nfs ~]# vi /etc/exports [root@nfs ~]# cat /etc/exports /nfs 192.168.47.163(rw) [root@nfs ~]# yum -y install nfs-utils [root@nfs ~]# systemctl start nfs-server //记得关防火墙 [root@nfs ~]# systemctl stop firewallddocker主机上安装nfs
[root@localhost ~]# yum -y install nfs-utils [root@localhost ~]# showmount -e 192.168.47.164 Export list for 192.168.47.164: /nfs 192.168.47.163挂载
[root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 876M 0 876M 0% /dev tmpfs 895M 0 895M 0% /dev/shm tmpfs 895M 8.8M 886M 1% /run tmpfs 895M 0 895M 0% /sys/fs/cgroup /dev/mapper/cs-root 47G 3.6G 44G 8% / /dev/sda1 1014M 195M 820M 20% /boot tmpfs 179M 0 179M 0% /run/user/0 overlay 47G 3.6G 44G 8% /var/lib/docker/overlay2/de6ab9425f6543bc359205cedeae7c01892ba6dd688a8071ec275046fa57973a/merged 192.168.47.164:/nfs 47G 2.1G 45G 5% /var/www/html创建容器并映射
[root@localhost ~]# docker run -itd --name httpd33 -p 80:80 -v /var/www/html/:/usr/local/apache/htdocs ead1ca35e71f c6cdc7234a031ec6993aedcd95103c7f475f18de4d2f35c04bdc44d56f41ba9f [root@localhost ~]# docker ps ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e22ff32278cb 809d37e9b570 "/bin/bash" about an hour ago Up about an hour httpd33给权限
[root@nfs ~]# chown nobody.nobody /nfs上传
[root@nfs ~]# ls /nfs/ html访问



