Dockerfile相关
dockerfile含有两种内容
- “#注释”:注释以#开始
- “INSTRUCTIONS”:指令以大写字母开始
#我是注释
#FROM必须是第一条,是基础镜像
FROM <image>
FROM <image>:<tag>
#指定作者和信息
MAINTAINER <name>
#当前镜像构建时运行的命令
RUN <command> (shell) 既 /bin/sh -c command
RUN <exec>
如:
RUN ["executable","parameter1",...]
RUN ["/bin/bash","-c","echo Hello!"]
#暴露端口,但run是还是需要手动打开
EXPOSE <port> [<port>]
#镜像运行后使用的命令,会被docker run [命令] 覆盖
#它用来指定容器运行后的默认操作
CMD <command> (shell) 既 /bin/sh -c command
CMD <exec>
如:
CMD ["executable","parameter1",...]
CMD ["/bin/bash","-c","echo Hello!"]
CMD ["parameter1","parametre2",...] 常与 entrypoint搭配使用
#和CMD差不多,就是不会被覆盖23333.
#可以配合CMD,在run时更改参数
ENTRYPOINT
#有空格的话加""
#ADD多个解压tar
ADD <sre> <dest>
COPY <sre> <dest>
#卷:在多个容器间共享
VOLUME["/data"]
#制定工作目录,建议使用绝对路径
WORKDIR /xxx/xxx
#环境变量
ENV <key> <value>
ENV <key>=<value>
#指定用户
USER user/uid/gid
USER xxx:group
#容器被变成镜像,作为镜像创建容器时会触发指令
ONBUILDE [instruction]
build后会删除中间容器,但不会删除中间镜像
不使用构建缓存:--no-chach
Docker网络相关
由虚拟网桥提供网络服务,数据链路层的玩意之列的,不是很懂emmm
linux中:docker0
windows:DockerNAT
相当于虚拟网卡 就是虚拟网卡
linux中用 bridge-util 来管理网桥
容器间互联:
--icc=true 是否可以互联的字段
容器间默认是在一个局域网内,使用ip地址非常不可靠会随这容器重启而改变
run --link=[容器名ContainrtName]:[别名Alias]
使用例子:
上述方法已过时,现使用docker network,可参照这个
跨主机连接和包转发啥的,暂时用不到,不学了~
博客介绍了Docker相关知识。Dockerfile包含注释和指令两种内容,构建后会删除中间容器,可通过--no-chach不使用构建缓存。Docker网络由虚拟网桥提供服务,Linux中为docker0,Windows为DockerNAT,可使用bridge-util管理网桥,容器互联有相关配置,现推荐用docker network。
&spm=1001.2101.3001.5002&articleId=90521472&d=1&t=3&u=2791c9325c4f4d9ab24fbaa1f3eebe97)
3万+

被折叠的 条评论
为什么被折叠?



