linux中paas用户,paas架构之Docker镜像管理

1. 镜像管理

1.1. 列出镜像

Sudo docker images

51c67979e78bec3aa82d679929913dca.png

1.2. 查看镜像

Sudo docker images xxxx

00a94f5874e29388a82b65653b280779.png

1.3. 拉取镜像

Sudo docker pull Ubuntu

78459e872520f7e5b2fb38a5634946a3.png

1.4. 查找镜像

Sudo docker search MySQL

14e6a8852bc23ee733e634964a654e68.png

1.5. 删除镜像

sudo docker rmi xxxxx (force)

f9d110ae1758b9068f573af55960b2bf.png

1.6. 构建镜像

1.6.1. Docker commit

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

1.6.2. Docker Build + Dockerfile

创建static_web目录

创建Dockerfile配置文件:

6c3fcaedb97a401baa8e0ca55509a8c3.png

Build:

0324edfc1ce968bfa7b5b106a4126fc2.png

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

111d8c56c0a29040d6e9bf8003cef716.png

2)  获取github中dockerfile文件的raw链接

简写

3)  使用该链接build

sudo docker build -t="jay/web_from_git" \

faeed3c412408eab21096faf8a33681e.png

c4f3a758be5c358f3c67f1a5bfde7389.png

4)  查看镜像

cd3f97cde653b3b61c77ae0f5242390f.png

5) 缓存镜像

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

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

586fb05b336cbdc05f554d16a4b06449.png

如果不想使用缓存,比如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端口效果:

577a22370afb0efa3edd4aeb9961f211.png

2b42be6d831bdeb92f863f4298749527.png

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

7)  将镜像推送到docker hub

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

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

1546da3c9eff18e5a5fcf454dd232e18.png

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

25b4fdee1ab59b070ad7acd842fa6ad1.png

d60d2bb7bf535cec097e10aaf4d0350b.png

807716400ce55a4c3c5e231060263c66.png

去docker hub账户查看仓库:

1c5cb8fbaa9a6c06157b98daa004a8eb.png

1.6.4. 自动构建

源代码托管于github

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

Github

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

0cfad484502d565917608f7c5c423bd4.png

DockerHub

21604c47eccb90665dfc2191dc167ce0.png

76c32b1bc58b5726c9ab0fc1e2864918.png

0535057e366aae122af8c434421332f5.png

b4781e0858c334d27d9db6dd711a129e.png

38b0ad5309a245a9fe76c09654daf250.png

1.6.5. Dockerfile指令

CMD命令

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

新建dockerfile:

1bd88541685ed181463bd79140be1b1b.png

构建镜像:

b9e4470a3b95b6352934ce99ff8b4ffd.png

启动镜像:

99e45c0c558fe59dc2fb1d5d439248da.png

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 的详细介绍:请点这里

Docker 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值