不积跬步,无以至千里

docker初探


环境配置

  1. 安装 Ubuntu版本16.04,参考安装步骤:http://docs.docker-cn.com/engine/installation/linux/docker-ce/ubuntu/#%E4%BD%BF%E7%94%A8%E9%95%9C%E5%83%8F%E4%BB%93%E5%BA%93%E8%BF%9B%E8%A1%8C%E5%AE%89%E8%A3%85 安装完成后,通过sudo docker run hello-world测试是否安装成功

应用

基本命令

  • 构建应用:docker build -t appName .
  • 添加-d使得后台运行应用:docker run -d -p 4000:80 app
  • 查看docker中运行的程序进程(即容器ID):docker ps
  • 结束进程:docker stop ${containerId}

共享镜像

在本地构建好应用之后,为了使得本地的应用能在其他地方运行,需要将构件好的应用上传到镜像库。

  • 登录Docker公共镜像库:docker login
  • 将本地应用发布到公共镜像库:docker tag ${image} ${username}/${repository}:${tag} 发布完成后,可以通过docker images查看镜像
  • 将镜像库的镜像上传到镜像仓库:docker push ${image} ${username}/${repository}:${tag} 上传后,可以登录https://hub.docker.com/查看新发布的镜像
  • 将远程镜像拉取到本地并运行:docker run -p 4000:80 ${username}/${repository}:${tag}

服务

添加docker-compose.yml文件:

version: "3"
services:
  web:
    # 将 username/repo:tag 替换为您的名称和镜像详细信息
    image: caojinyan/demo:1
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet
networks:
  webnet:

需要注意的是,yml文件的:号后必须添加空格,否则执行会报错。

  • 将服务设置为swarm集群管理:docker swarm init
  • 使其他机器以工作节点加入swarm:docker swarm join
  • 修改docker-compose.yml文件后,更新配置:docker stack deploy -c docker-compose.yml getstartedlab

Linux系统安装docker-machine:

base=https://github.com/docker/machine/releases/download/v0.14.0 &&
  curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
  sudo install /tmp/docker-machine /usr/local/bin/docker-machine

安装好docker-machine后,在本地创建两个虚拟机: docker-machine create --driver virtualbox myvm1
docker-machine create --driver virtualbox myvm2 这里创建的时候,一直报连接超时。。。