6 Dockerfile
6.1 构建镜像步骤
1.编写dockerfile文件
2.构建镜像 docker build
3.docker run 运行镜像
4.docker push 发布镜像
Dockerfile命令
发布项目需要编写dockerfile文件,docker逐渐成项目交付标准
Dockerfile :构建文件,定义了一切步骤,源代码
Docker容器:提供运行镜像的服务器
FROM //指定基础镜像
MAINTAINTER //作者,姓名+邮箱
RUN //镜像构建时需要运行的命令
ADD //例如添加tomcat镜像至基础镜像之上
WORKDIR //镜像的工作目录
VOLUME //设置卷,挂载主机目录
EXPOSE //暴露端口,等同于-p
CMD // 指定容器启动时要运行的命令,只有最后一个会生效,可被替代(替换)
ENTRYPOINT //指定容器启动时就要运行的命令,可以追加命令(追加)
ONBUILD //触发指令
COPY //类似ADD,将文件拷贝至镜像中
ENV //构建的时候需要设置环境变量
6.2 使用范例
FROM centos
MAINTAINER shiyivei<shiyivei@outlook.com>
ENV MYPATH /user/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "----end----"
CMD /bin/bash
docker build -f mydockerfile-centos -t mycentos:0.1. //构建
docker run -it mycentos:0.1 //运行发布
docker history “image ID” //查看构建历史变更信息
6.3 发布镜像
注册一个Dockerhub账户
docker login -u shiyivei //登录Dockerhub
docker push cmdtest //发布镜像,注意名字不要重复
requested access to the resource is denied //重复的话使用tag改名
docker tag 3f5607ae3630 shiyivei/cmdtest:1.0
docker push shiyivei/cmdtest:1.0 //重新发布,发布结束后就可以在dockerhub上看到镜像了
如果发布到阿里云的话,参考官方文档即可
Docker 7 Docker 网络
7.1 Docker 网络简介
先删除所有镜像,让本机环境干净
ip addr //查看IP
本机回环地址
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
阿里云内网地址
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:3e:2b:f5:7a brd ff:ff:ff:ff:ff:ff
inet 172.22.64.97/20 brd 172.22.79.255 scope global dynamic eth0
valid_lft 315119875sec preferred_lft 315119875sec
inet6 fe80::216:3eff:fe2b:f57a/64 scope link
valid_lft forever preferred_lft forever
Docker地址
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:0b:1b:8a:67 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:bff:fe1b:8a67/64 scope link
valid_lft forever preferred_lft forever
测