本文章为《云计算》课程实验总结,使用CentOS7安装Docker并进行简单镜像制作。
注意:Docker要求CentOS系统的内核版本高于 3.10,可使用uname -r
查看系统内核。
(1)更新yum包
yum update
(2)安装依赖包
yum-util
提供yum-config-manager
功能,另外两个是devicemapper
驱动依赖。
yum install -y yum-utils device-mapper-persistent-data lvm2
(3)设置yum
国内源,提升下载速度。
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4)安装Docker
①查看Docker仓库所有版本
yum list docker-ce --showduplicates | sort -r
②选择版本安装
yum install -y docker-ce-18.06.3.ce
(5)验证Docker是否安装成功
①启动Docker
systemctl start docker #systemctl enable docker 加入自启动
②docker version
有Client和Service代表安装成功。
(1)下载hello-world image文件
docker image pull
是抓取image
文件的命令;library/hello-world
是image
文件在仓库里面的位置。
docker image pull library/hello-world
docker images可查看本地docker镜像有哪些。
(2)运行hello-world image文件
docker container run hello-world
利用镜像运行容器。本实例创建一个简单的apache服务器镜像,并通过镜像运行容器。
(1)创建工作目录
mkdir apache cd apache
(2)创建并编写dockerfile文件
vi dockerfile
并写入以下内容:
#基础镜像 FROM centos #维护该镜像的用户信息 MAINTAINER The Centos Project<[email protected]> #镜像操作指令安装 apache 软件包 #低版本centos需更新yum源,即加上下面这句 #RUN yum -y update RUN yum -y install httpd #开启 80 端口 EXPOSE 80 #复制index.html文件,并把它设置网站首页文件 ADD index.html /var/www/html/index.html #将执行脚本复制到镜像中 ADD run.sh /run.sh RUN chmod 755 /run.sh #启动容器时执行脚本 CMD ["/run.sh"]
(3)编写执行脚本run.sh
vi run.sh
并写入以下内容:
#!/bin/bash rm -rf /run/httpd/* exec /usr/sbin/apachectl -D FOREGROUND
(4)创建apache服务首页页面index.html
vi index.html
并写入以下内容:
<h1>Hello for Docker</h1>
(5)生成镜像
#docker build [选项] 路径 #-t:指定镜像的标签信息 docker build -t apache:centos . #'.'表示当前路径
查看本地镜像docker images
(6)利用镜像运行容器
①实现将本地端口 8080 映射到容器中的 80 端口
docker run -d -p 8080:80 apache:centos
②windows下使用浏览器访问虚拟机:IP:8080
注:如果发现无法访问虚拟机,应该是防火墙的问题。开放相应端口或关闭防火墙即可。
#方式一:允许8080端口流量 firewall-cmd --permanent --zone=public --add-port=8080/tcp #防火墙开放8080端口:success代表设置成功 firewall-cmd --reload #重新加载防火墙配置:success代表成功 firewall-cmd --zone=public --query-port=8080/tcp #检查80端口配置是否生效:yes代表生效 #方式二:关闭防火墙 systemctl stop firewalld systemctl disable firewalld