docker镜像创建与目录挂载 2019-04-01 程序之旅,记录 1 条评论 2531 次阅读 在本地或虚拟机安装好docker之后,自行创建一个docker镜像文件。创建一个目录dockerfile,在目录下创建文件Dockerfile,文件内容如下: ``` FROM ubuntu # 基础镜像名字 MAINTAINER Mark # 声明作者 RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list # 加速生成(类似换源) RUN apt-get update # 更新ubuntu程序库 RUN apt-get install -y nginx # 安装nginx -y 省略提醒,一路默认。 COPY index.html /var/www/html # 拷贝文件到这里,(不同版本的系统位置不一样)。 ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"] # 设置容器入口 EXPOSE 80 # 暴露80端口 ``` 执行创建命令 ``` docker build -t felton/nginx . # 当前目录作为上下文创建镜像,-t:指定要创建的目标镜像名 ``` Dockerfile语法 > FROM:base image #基础镜像 > > RUN:执行命令 > > ADD:添加文件。能直接添加远程文件。 > > COPY:拷贝文件 > > CMD:执行文件 > > EXPOSE:暴露端口 > > WORKDIR:指定路径 > > MAINTAINER:维护者 > > ENV:设定环境变量 > > ENTRYPOINT:容器入口 > > USER:指定用户 > > VOLUME:mount point [菜鸟教程](https://yeasy.gitbooks.io/docker_practice/install/mirror.html) ### Volume 由于在docker中的提供独立于容器之外的持久化存储,并且还能把数据提供给容器之外的容器。 在运行容器的时候执行`-v 目录`来指定容器内目录,实现容器目录的开放。 方法一: ``` docker run -d --name nginx -v /usr/share/nginx/html nginx docker inspect nginx #给出容器的所有信息 ``` > 可以在容器的所有信息中查看映射到容器中指定目录的宿主机的目录 方法二: ``` docker run -p 80:80 -d -v $PWD/html:/usr/share/nginx/html nginx ``` > -p 端口映射 > > -d 守护模式执行 > > -v 挂载 > > $PWD shell命令下的当前目录变量 > > nginx 基础镜像 冒号后边的就是容器中的目录。 ![docker.png](https://mufeng-blog.oss-cn-beijing.aliyuncs.com/usr/uploads/2019/04/3779290273.png) 方法三: ``` docker run --volumes-from data_container ubuntu ``` > data_container 正在运行的容器,已共享一个目录 > > ubuntu:基础镜像,获取另一个容器的目录挂载 ------ ### 2019年9月23日 补充:centos7下 安装docker yum源文件和rpm包都在网页download.docker.com中,可以自己下载安装: ```shell wget https://download.docker.com/linux/centos/docker-ce.repo mv docker-ce.repo /etc/yum.repos.d yum install -y docker-ce ``` 同样的在[官网](https://hub.docker.com/_/centos?tab=tags)上查看或者直接在命令行进行下载地址(我这下载的centos镜像) ```shell docker search centos # 查找centos 的镜像,如果带有official字样的,说明是官网镜像 docker pull centos # 下载镜像 ``` 打赏: 微信, 支付宝 标签: docker 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
阅读量+1