当前位置:   article > 正文

Docker 的进阶操作_docker 进阶

docker 进阶

本文是关于 Docker 的进阶操作,介绍如何通过 Dockerfile 文件构建镜像、如何搭建私人镜像仓库、Docker 网络通信。

1. Dockerfile

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

1.1 基础知识

  1. 每条指令都必须为大写;
  2. 指令安照从上到下顺序执行;
  3. 每条指令都会创建一个新的镜像层并对镜像进行提交。

1.2 指令介绍

FROM:基础镜像,在指定镜像的基础上构建新的镜像
MAINTAINER:镜像维护者的姓名和邮箱地址
RUN:构建时需要运行的命令
EXPOSE:暴露端口
WORKDIR:进入交互模式时的当前路径
USER:执行镜像的用户,默认是root
ENV:构建时设置的环境变量
ADD:将主机目录下的文件拷贝进镜像且自动处理url和解压tar包
COPY:将主机目录下的文件拷贝到镜像中
VOLUMN:容器数据卷
CMD:容器启动后执行(多个CMD只有最会一个生效;会被docker run后面的命令覆盖)
ENTRYPOINT:容器启动后执行(不会被docker run后面的命令覆盖,会成为它的参数;如果CMD一起使用,CMD会成为它的参数)

1.3 构建镜像

docker build -t 镜像名:tag
  • 1

2. 构建私有仓库

我们通过 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3. Docker网络

3.1 docker network 常用命令

# 查看网络
docker network ls

# 查看网络源数据
docker network inspect 网络名称

# 创建网络
docker network create 网络名称

# 删除网路
docker network rm 网络名称
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

3.2 网络模式

Docker 服务默认创建一个 docker0 网桥,它在内核层连通了其它物理层或虚拟网卡,这将所有容器和本地主机都放到同一个物理网络。Docker 默认指定了 docker0 的 IP 和子网掩码,让主机和容器之间可以通过网桥相互通信。

  • bridge
    为每个容器分配、设置 IP 等,并将容器连接到一个 docker0 虚拟网桥,默认为该模式。
# 指定bridge模式
--network bridge
  • 1
  • 2
  • host
    容器使用宿主机的 IP 和端口。
# 指定host模式
--network host
  • 1
  • 2
  • none
    容器有独立的 network namaspace,但并没有对其进行任何网络设置。
# 指定none模式
--network none
  • 1
  • 2
  • container
    新创建的容器与指定的容器共享 IP 和端口范围等。
# 指定container模式
--network container:容器名或ID
  • 1
  • 2
  • 自定义网络
    自定义网络本身就维护好了主机名和IP的对应关系,使用主机名或IP都可以互相ping。
# 指定自定义网络模式
--network 自定义网络名
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/73486
推荐阅读
相关标签
  

闽ICP备14008679号