标签:
Sudo docker images
Sudo docker images xxxx
Sudo docker pull ubuntu
Sudo docker search mysql
sudo docker rmi xxxxx (force)
不推荐,建议使用docker build+ docker file
创建static_web目录
创建Dockerfile配置文件:
Build:
1) git创建dockerfile
输入文件内容:
# vesion: 0.0.1
FROM ubuntu:14.04
MAINTAINER Jay Zhan "zhanchenjin.2008@163.com"
RUN apt-get install -y nginx
RUN echo ‘Hi, I am in you container‘ > /usr/share/nginx/html/index.html
EXPOSE 8090
2) 获取github中dockerfile文件的raw链接
https://raw.githubusercontent.com/duruo850/docker/master/test.dockerfile
简写
https://rawgit.com/duruo850/docker/master/test.dockerfile
3) 使用该链接build
sudo docker build -t="jay/web_from_git" \
https://rawgit.com/duruo850/docker/master/test.dockerfile
4) 查看镜像
5) 缓存镜像
Docker的每一次构建都会缓存一个本地的镜像,所以从哪一步出错,就进入前镜像输入该命令即可知道什么问题;
如果构建过程都是一样的,将采用同一个镜像
如果不想使用缓存,比如apt-get update命令,将不会刷新apt包缓存,这时候需要不使用缓存
sudo docker build –no-cache -t="jay/web_from_git" .
6) 从镜像启动容器
sudo docker run -i -t -p 10080:80 --name static_web2 jay/static_web nginx -g "daemon off;"
使用宿主机的10080端口映射虚拟机的80端口
查看宿主机的10080端口效果:
和我们nginx的index.html的输出内容一致
7) 将镜像推送到docker hub
报错:unauthorized: access to the requested resource is not authorized
解决:需要使用docker login先登陆
只能上传到docker hub账户对应的仓库(docker hub 账户/xxxxxx),不可以上传到root仓库(xxxxx),
去docker hub账户查看仓库:
源代码托管于github
Github代码有变化时,dockerhub自动获取Dockerfile,自动构建docker容器
Github
Github代码的根目录需要提供Dockerfile配置文件
DockerHub
CMD指令指定一个容器启动时要运行的命令。和RUN命令有些类似,只是RUN命令是构建是要运行的命令。RUN命令可以覆盖CMD命令
新建dockerfile:
构建镜像:
启动镜像:
RUN命令覆盖:
Ls命令覆盖了/bin/bash命令
ENTRYPOINT和CMD命令唯一区别就是不会被RUN命令覆盖
RUN的命令行的参数会被当做参数再次传递给ENTRYPOINT命令
RUN可以使用—entrypoint标志覆盖该命令
创建镜像构建新容器时,在容器内部设置一个工作目录,ENTRYPOINT和/或者CMD命令都会在此目录下执行
RUN可以使用-W标志覆盖该命令
在镜像构建过程中设置环境变量
环境变量会持久保存到镜像构建的任何容器中
RUN可以使用-e标志来传递环境变量,这些变量将只会在运行时有效
用来指定该镜像的运行用户
RUN可以使用-u标志来覆盖该变量
如果不指定用户组,默认用户组为root
用来向基于镜像构建的容器添加卷,数据共享功能
用来将构建环境下的文件和目录复制到镜像中,
可以添加构建环境的任何文件
会将一些归档文件(gzip,tar,xz,bzip2)等解开,然后再放到目标目录
如果目录位置不存在的话,Docker将会为我们创建这个全路径,
ADD命令使得构建缓存变得无效
与ADD命令类似,不过COPY不会像ADD那样去提取和解开归档文件
只能复制构建目录下的文件,和Dockerfile处于同一个目录
如果目录位置不存在的话,Docker将会为我们创建这个全路径,
为镜像添加触发器,当一个镜像被当做其他镜像的基础镜像时,该镜像的触发器将会执行
为了防止递归调用,这些命令不能用在ONBUILD中:FROM, ONBUILD, MAINTAINER等
标签:
原文地址:http://www.cnblogs.com/zhanchenjin/p/5276399.html