阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

paas架构之Docker镜像管理

167次阅读
没有评论

共计 2810 个字符,预计需要花费 8 分钟才能阅读完成。

1. 镜像管理

1.1. 列出镜像

Sudo docker images

paas 架构之 Docker 镜像管理

1.2. 查看镜像

Sudo docker images xxxx

paas 架构之 Docker 镜像管理

1.3. 拉取镜像

Sudo docker pull Ubuntu

paas 架构之 Docker 镜像管理

1.4. 查找镜像

Sudo docker search MySQL

paas 架构之 Docker 镜像管理

1.5. 删除镜像

sudo docker rmi xxxxx (force)

paas 架构之 Docker 镜像管理

1.6. 构建镜像

1.6.1. Docker commit

不推荐,建议使用 docker build+ docker file

1.6.2. Docker Build + Dockerfile

创建 static_web 目录

创建 Dockerfile 配置文件:

paas 架构之 Docker 镜像管理

Build:

paas 架构之 Docker 镜像管理

1.6.3. 从 git 仓库构建镜像

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

paas 架构之 Docker 镜像管理

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

paas 架构之 Docker 镜像管理

paas 架构之 Docker 镜像管理

4)  查看镜像

paas 架构之 Docker 镜像管理

5) 缓存镜像

Docker 的每一次构建都会缓存一个本地的镜像,所以从哪一步出错,就进入前镜像输入该命令即可知道什么问题;

如果构建过程都是一样的,将采用同一个镜像

paas 架构之 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 端口效果:

paas 架构之 Docker 镜像管理

paas 架构之 Docker 镜像管理

和我们 nginx 的 index.html 的输出内容一致

7)  将镜像推送到 docker hub

报错:unauthorized: access to the requested resource is not authorized

解决:需要使用 docker login 先登陆

paas 架构之 Docker 镜像管理

只能上传到 docker hub 账户对应的仓库(docker hub 账户 /xxxxxx),不可以上传到 root 仓库(xxxxx),

paas 架构之 Docker 镜像管理

paas 架构之 Docker 镜像管理

paas 架构之 Docker 镜像管理

去 docker hub 账户查看仓库:

paas 架构之 Docker 镜像管理

1.6.4. 自动构建

源代码托管于 github

Github 代码有变化时,dockerhub 自动获取 Dockerfile, 自动构建 docker 容器

Github

Github 代码的根目录需要提供 Dockerfile 配置文件

paas 架构之 Docker 镜像管理

DockerHub

paas 架构之 Docker 镜像管理

paas 架构之 Docker 镜像管理

paas 架构之 Docker 镜像管理

paas 架构之 Docker 镜像管理

paas 架构之 Docker 镜像管理

 

1.6.5. Dockerfile 指令

  • CMD 命令

CMD 指令指定一个容器启动时要运行的命令。和 RUN 命令有些类似,只是 RUN 命令是构建是要运行的命令。RUN 命令可以覆盖 CMD 命令

新建 dockerfile:

paas 架构之 Docker 镜像管理

构建镜像:

paas 架构之 Docker 镜像管理

启动镜像:

paas 架构之 Docker 镜像管理

RUN 命令覆盖:

Ls 命令覆盖了 /bin/bash 命令

  • ENTRYPOINT 命令

ENTRYPOINT 和 CMD 命令唯一区别就是不会被 RUN 命令覆盖

RUN 的命令行的参数会被当做参数再次传递给 ENTRYPOINT 命令

RUN 可以使用—entrypoint 标志覆盖该命令

  • WORKDIR 命令

创建镜像构建新容器时,在容器内部设置一个工作目录,ENTRYPOINT 和 / 或者 CMD 命令都会在此目录下执行

RUN 可以使用 - W 标志覆盖该命令

  • ENV 命令

在镜像构建过程中设置环境变量

环境变量会持久保存到镜像构建的任何容器中

RUN 可以使用 - e 标志来传递环境变量,这些变量将只会在运行时有效

  • USER 命令

用来指定该镜像的运行用户

RUN 可以使用 - u 标志来覆盖该变量

如果不指定用户组,默认用户组为 root

  • VOLUME 命令

用来向基于镜像构建的容器添加卷,数据共享功能

  • ADD 命令

用来将构建环境下的文件和目录复制到镜像中,

可以添加构建环境的任何文件

会将一些归档文件 (gzip,tar,xz,bzip2) 等解开,然后再放到目标目录

如果目录位置不存在的话,Docker 将会为我们创建这个全路径,

ADD 命令使得构建缓存变得无效

  • COPY 命令

与 ADD 命令类似,不过 COPY 不会像 ADD 那样去提取和解开归档文件

只能复制构建目录下的文件,和 Dockerfile 处于同一个目录

如果目录位置不存在的话,Docker 将会为我们创建这个全路径,

  • ONBUILD 命令

为镜像添加触发器,当一个镜像被当做其他镜像的基础镜像时,该镜像的触发器将会执行

为了防止递归调用,这些命令不能用在 ONBUILD 中:FROM, ONBUILD, MAINTAINER 等

更多 Docker 相关教程见以下内容

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 14.04 安装 Docker  http://www.linuxidc.com/linux/2014-08/105656.htm 

Ubuntu 使用 VNC 运行基于 Docker 的桌面系统  http://www.linuxidc.com/Linux/2015-08/121170.htm 

阿里云 CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm 

Ubuntu 15.04 下安装 Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm 

在 Ubuntu Trusty 14.04 (LTS) (64-bit)安装 Docker http://www.linuxidc.com/Linux/2014-10/108184.htm 

在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm 

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里 

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-04/130095.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2810字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中