赞
踩
本文是关于 Docker 的进阶操作,介绍如何通过 Dockerfile 文件构建镜像、如何搭建私人镜像仓库、Docker 网络通信。
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
FROM:基础镜像,在指定镜像的基础上构建新的镜像
MAINTAINER:镜像维护者的姓名和邮箱地址
RUN:构建时需要运行的命令
EXPOSE:暴露端口
WORKDIR:进入交互模式时的当前路径
USER:执行镜像的用户,默认是root
ENV:构建时设置的环境变量
ADD:将主机目录下的文件拷贝进镜像且自动处理url和解压tar包
COPY:将主机目录下的文件拷贝到镜像中
VOLUMN:容器数据卷
CMD:容器启动后执行(多个CMD只有最会一个生效;会被docker run后面的命令覆盖)
ENTRYPOINT:容器启动后执行(不会被docker run后面的命令覆盖,会成为它的参数;如果CMD一起使用,CMD会成为它的参数)
docker build -t 镜像名:tag
我们通过 Dockerfile 构建完镜像后,可以把这些镜像上传到自己的私人镜像仓库进行管理。
# 1.下载镜像Docker Registry
docker pull Registry
# 2.运行Registry
docker run -d -p 5000:5000 -v /wenqi/dockerregistry/:tmp/registry --privileged=true registry
# 3.上传到私有仓库的镜像tag需要符合标准(ip:port/镜像名:版本号),ip为私有仓库ip,port为私有仓库的port
docker tag test:1.1 ip:port/test:1.1
# 4.上传镜像到私有仓库
docker push ip:port/test:1.1
# 查看网络
docker network ls
# 查看网络源数据
docker network inspect 网络名称
# 创建网络
docker network create 网络名称
# 删除网路
docker network rm 网络名称
Docker 服务默认创建一个 docker0 网桥,它在内核层连通了其它物理层或虚拟网卡,这将所有容器和本地主机都放到同一个物理网络。Docker 默认指定了 docker0 的 IP 和子网掩码,让主机和容器之间可以通过网桥相互通信。
# 指定bridge模式
--network bridge
# 指定host模式
--network host
# 指定none模式
--network none
# 指定container模式
--network container:容器名或ID
# 指定自定义网络模式
--network 自定义网络名
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。