先创建一个放dockerfile的文件夹 mkdir -p /root/dockerfile/inter-image 进入创建的文件夹 cd /root/dockerfile/inter-image 创建dockerfile(必须叫这个名字) touch dockerfile
老师给的dockerfile内容如下:
1 2 3 4 5 6 7
FROM centos RUN sed -i "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-* RUN sed -i "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-* RUN yum install wget -y RUN yum install nginx -y EXPOSE 80 CMD /bin/bash
但是我一直下载不了centos:latest,所以做了改动:
1 2 3 4 5 6 7 8 9 10 11 12
FROM centos:7 # 修复基础仓库地址 RUN sed -i \ -e "s|mirrorlist=|#mirrorlist=|g" \ -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" \ /etc/yum.repos.d/CentOS-* # 安装 EPEL 仓库(nginx所在仓库) RUN yum install -y epel-release # 安装所需软件(合并命令减少层数) RUN yum install -y wget nginx EXPOSE 80 CMD /bin/bash # 保持前台运行
保存上面内容后退出
1
docker build -t "inter-image" . #构建镜像
构建完毕以后该镜像就会生成到docker里
1 2 3 4 5 6 7 8 9
docker images #查看镜像 docker save -o 名字.tar.gz 镜像名字 docker save -o inter-image.tar.gz inter-image docker run --name inter-image -v ~/dataxiaoE:/data -itd inter-image /bin/bash #构建一个容器 docker exec -it inter-image /bin/bash #进入容器 /usr/sbin/nginx -t #开启nginx服务 ip a curl ip:80 #访问到nginx欢迎页面 exit#退出
docker run --name host -it --net=host --privileged=true centos:7 ip a #发现和本机的IP一样 exit#退出 docker rm host #删除容器
none模式:
1 2 3 4
docker run -td --name none --net=none --privileged=true centos:7 docker exec -it none /bin/bash ip a #发现只有lo网卡 exit#退出
如何判断是否为docker环境
可以通过:cat /proc/1/cgroup命令查看内容
也可以通过ls -alh /.dockerenv查看是否有容器环境文件
1 2 3 4 5
[root@92a79e791862 /]# ls -a / . .dockerenv bin dev home lib64 mnt proc run srv tmp var .. anaconda-post.log boot etc lib media opt root sbin sys usr [root@92a79e791862 /]# ls -a /.dockerenv /.dockerenv