以下是Docker相关笔记总结,方便自己以后复习,同时也希望对大家有所帮助。
标题 | 链接 |
---|---|
ubuntu18下Docker 安装 | https://bbx-xb.blog.csdn.net/article/details/127365151 |
Docker常用命令 | https://bbx-xb.blog.csdn.net/article/details/127439708 |
Docker容器数据卷 | https://bbx-xb.blog.csdn.net/article/details/127456290 |
Dockerfile使用介绍(入门教程) | https://bbx-xb.blog.csdn.net/article/details/127455437 |
概念
Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
镜像的定制实际上就是定制每一层所添加的配置。若把每一层修改、安装、构建、操作的命令都写入一个脚本,用该脚本来构建镜像。这个脚本就是 Dockerfile。
Dockerfile 是一个文本文件,其内包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。有了 Dockerfile,当我们需要定制自己额外的需求时,只需在 Dockerfile 上添加或者修改指令,重新生成 image 即可。
构建步骤
- 编写Dockerfile文件
- docker build 构建成为一个镜像
- docker run 运行镜像
- docker push 发布镜像(dockerHub,阿里云镜像仓库)
基础知识
- 每个保留关键字(指令)都必须是大写的
- 命令执行从上到下顺序执行
- #表示注释
- 每个指令都会创建提交一个新的镜像层,并提交
完整镜像的结构图:
DockerFile:构建文件,定义了一切的步骤,源代码
DockerImages:通过dockerfile构建生成的镜像,最终发布和运行的产品
Docker容器:容器就是镜像运行起来提供服务的
常用指令说明
指令 | 解释 |
---|---|
FROM | 基础镜像 |
MAINTAINER | 镜像作者,一般格式为:姓名+邮箱 |
RUN | 镜像构建的时候需要运行的命令 |
AND | 添加内容指令,从上下文目录中添加文件或者目录到容器里指定路径,在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径> |
COPY | 复制指令,从上下文目录中复制文件或者目录到容器里指定路径。COPY <源文件> <目标路径> |
WORKDIR | 镜像的工作目录,进入容器时默认目录 |
VOLUME | 挂载的目录 |
EXPOSE | 暴露端口配置 |
CMD | 指定这个容器启动的时候要运行的命令,可被docker run 的命令行参数指定的指令所覆盖 |
ENTRYPOINT | 指定这个容器启动的时候要运行的命令,不被docker run 的命令行参数指定的指令所覆盖,可在其后追加命令 |
ONBUILD | 用于延迟构建命令的执行,当构建一个被继承 dockerfile 这个时候就会运行ONBUILD的指令,触发指令 |
ENV | 构建的时候环境变量 |
实战测试
编写Dockerfile制作自己的Ubuntu镜像
在此镜像中存在vim命令和net-tools
- 编写Dockerfile文件
FROM ubuntu
MAINTAINER bbx
ENV MYPATH /usr/local
WORKDIR $MYPATH
#使用-i 在文件中替换
RUN sed -i 's#http://archive.ubuntu.com/#http://mirrors.tuna.tsinghua.edu.cn/#' /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y vim
RUN apt-get install -y net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "---end---"
CMD /bin/bash
说明
替换源命令格式: sed -i 's/原字符串/替换字符串/' filename
- 构建镜像
最后的.
不要忘记写
docker build -f mydockerfile -t myubuntu:1.0 .
- 查看构建的镜像
root@VM-4-3-ubuntu:/home/dockerfile# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
myubuntu 1.0 3dc827ed14b8 10 minutes ago 176MB
- 运行镜像
docker run -it --name myubuntu01 myubuntu:1.0 /bin/bash
- 测试是否安装net-tools
#5. 测试net-tools
root@54d0634a778d:/usr/local# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet)
RX packets 12 bytes 976 (976.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
扩展
查看本地镜像的变更历史
docker history 镜像id
#查看本地镜像
root@VM-4-3-ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
myubuntu 1.0 3dc827ed14b8 20 minutes ago 176MB
#查看变更历史
root@VM-4-3-ubuntu:~# docker history 3dc827ed14b8
IMAGE CREATED CREATED BY SIZE COMMENT
3dc827ed14b8 20 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "/bin… 0B
20a60530bcd5 20 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "echo… 0B
92eff2556955 20 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "echo… 0B
63f7ce3c1a27 20 minutes ago /bin/sh -c #(nop) EXPOSE 80 0B
b7f427f02e17 20 minutes ago /bin/sh -c apt-get install -y net-tools 1.46MB
527f218c9f27 20 minutes ago /bin/sh -c apt-get install -y vim 59.3MB
8ca15ec4fb21 22 minutes ago /bin/sh -c apt-get update 37.7MB
dde78790ea52 24 minutes ago /bin/sh -c sed -i 's#http://archive.ubuntu.c… 2.54kB
cc77e008ed87 24 minutes ago /bin/sh -c #(nop) WORKDIR /usr/local 0B
7a96d052bc39 24 minutes ago /bin/sh -c #(nop) ENV MYPATH=/usr/local 0B
05d8fb2ee2a5 24 minutes ago /bin/sh -c #(nop) MAINTAINER bbx<1101249732… 0B
216c552ea5ba 2 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ADD file:6cd2e13356aa5339c… 77.8MB
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119785.html