Sudo docker imageshtml
Sudo docker images xxxxmysql
Sudo docker pull ubuntunginx
Sudo docker search mysqlgit
sudo docker rmi xxxxx (force)github
不推荐,建议使用docker build+ docker fileweb
建立static_web目录sql
建立Dockerfile配置文件:docker
Build:ubuntu
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等