Dokerfile
- 参数
FROM 基础镜像,指定一个已经存在的镜像作为模板
MAINTAINER 镜像维护者和邮箱地址
RUN 两种风格 *shell:RAN (命令) *exec:RAN ["可执行文件",“参数”,“参数n”]
EXPOSS 当前容器对外暴露的端口
WORKDIR 指定在容器创建后,终端默认登陆的进来工作目录,一个落脚点
USER 指定镜像以什么样的用户去去执行,默认为 root
ENV 用于在构建镜像过程中设置环境变量
VOLUME 容器数据卷,用于数据保存和持久化工作
ADD 将主机目录下文件拷贝进镜像且会自动处理URL和解压tar压缩包
COPY 类似ADD COPY 源文件 目标文件
CMD 指定容器启动后要干的事,Dokerfile中可有多个指令,但只有最后一个生效,CMD会被docker run 之后的参数替换
ENTRYPOINT 类似CMD,但不会被替换
- 案例
//将要导入到镜像的文件放在同一个目录下
//创建一个Dockerfile 文件
vim Dockerfile
//构建,要在和Dockerfile同一目录下
// docker build -t [镜像名]:[tag] .
docker build -t myubuntu:1.1 .
- 虚悬镜像 (镜像名和版本号为 )
docker build [dir]或 .
//查看虚悬镜像
docker images -f dangling=true
//删除虚悬镜像
docker images prune
docker网路
- 检查docker服务是否启动
docker images &>/dev/null
echo $?
//若为0,则已经启动,若不为0则失败
systemctl start docker
ifconfig //查看docker0网络
- 常用命令
docker network ls
docker create 名称
docker network inspect xxx网络名称
docker network rm xxx网络名称
- 网络模式
-
bridge模式:使用–network bridge指定,默认使用docker0。为每个容器分配,设置IP
-
host模式:使用–network host指定,容器不会虚拟出自己的网卡,使用主机IP和端口
-
none模式:使用–network none指定,容器有独立的Network namespace
-
container模式:使用–network container:NAME或者容器ID指定
docker network ls