Docker基础总结

  • Docker

    常用命令

    docker verision --> 版本

    docker ps —> 查看当前容器

    docker ps -a —> 查看所有容器

    docker images —> 查看当前所有镜像

    docker search nginx —> 搜索可用的 docker 镜像

    docker pull nginx —> 下载镜像容器

    docker run nginx echo "hello world" —>在docker容器中运行"hello world"

    • docker run 命令有两个参数,一个是镜像名,一个是要在镜像中运行的命令。

    docker run learn/tutorial apt-get install -y ping

    • 基于 ubuntu 的镜像可以使用 apt-get 的命令来安装

    docker commit —> 保存对容器的修改

    docker run learn/ping ping www.baidu.com

    docker inspect id 查看运行中镜像的详细状态

    docker login —> 登录

    docker push yourname/imagesname —> 提交镜像到自己的 Docker Hub

    docker run -p 80:80 name/imagesname —>通过 -p 参数对外指定 80 端口

    Dockerfile

    FROM ubuntu:14.04   // 指定镜像基于ubuntu 14.04构建
    MAINTAINER saymagic [email protected]   // 创建镜像的用户
    RUN apt-get update    // shell
    RUN apt-get install -y nginx
    COPY ./www /usr/share/nginx/html // copy
    EXPOSE 80 // 暴露80端口
    CMD ["nginx", "-g", "daemon off;"] // 运行容器时开启nginx
    

    http://www.docker.org.cn/dockerppt/114.html

    Docker网络配置

    Dokcer 通过使用 Linux 桥接提供容器之间的通信,docker0 桥接接口的目的就是方便 Docker 管理。

    • creates the docker0 bridge if not present
      • # 如果 docker0 不存在则创建
    • searches for an IP address range which doesn’t overlap with an existing route
      • # 搜索一个与当前路由不冲突的 ip 段
    • picks an IP in the selected range
      • # 在确定的范围中选择 ip
    • assigns this IP to the docker0 bridge
      • # 绑定 ip 到 docker0

    Docker 默认有四种网络模式

    • host 模式,使用 --net=host 指定。

      • 如果启动容器的时候使用 host 模式,那么这个容器将不会获得一个独立的 Network Namespace,而是和宿主机共用一个 Network Namespace。容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP 和端口。
      • 容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。
    • container 模式,使用 --net=container:NAMEorID 指定。

      • 这个模式指定新创建的容器和已经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。
    • none 模式,使用 --net=none 指定。

      • 这个模式和前两个不同。在这种模式下,Docker 容器拥有自己的 Network Namespace,但是,并不为 Docker容器进行任何网络配置。也就是说,这个 Docker 容器没有网卡、IP、路由等信息。需要我们自己为 Docker 容器添加网卡、配置 IP 等。
    • bridge 模式,使用 --net=bridge 指定,默认设置。

      • bridge 模式是 Docker 默认的网络设置,此模式会为每一个容器分配 Network Namespace、设置 IP 等,并将一个主机上的 Docker 容器连接到一个虚拟网桥上。

      • 当 Docker server 启动时,会在主机上创建一个名为 docker0 的虚拟网桥,此主机上启动的 Docker 容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。

      • 接下来就要为容器分配 IP 了,Docker 会从 RFC1918 所定义的私有 IP 网段中,选择一个和宿主机不同的IP地址和子网分配给 docker0,连接到 docker0 的容器就从这个子网中选择一个未占用的 IP 使用。如一般 Docker 会使用 172.17.0.0/16 这个网段,并将 172.17.42.1/16 分配给 docker0 网桥

        (在主机上使用 ifconfig 命令是可以看到 docker0 的,可以认为它是网桥的管理接口,在宿主机上作为一块虚拟网卡使用)

你可能感兴趣的:(Docker基础总结)