环境配置
- 安装
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
这里创建的时候,一直报连接超时。。。