#构建
docker build -t my/centos:v1 .
#开启一个容器,如果镜像不存在会自动下载
docker run -t -i --mount type=bind,source=/c/workspace/gopath,target=/go -p 8080:8080 golang:1.11-stretch
#开始一个容器
docker start -i CONTAINER ID
#进入一个执行中的容器
docker exec -i -t CONTAINER ID /bin/bash
#再别的镜像的基础上修改后提交
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
#搜索镜像
docker search
#日志
docker logs -f
#列出容器状态
docker ps -a
#查看端口映射情况
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
#查看容器内的进程
docker top CONTAINER [ps OPTIONS]
#查看容器底层信息
docker inspect
#过滤信息
docker inspect -f '{{ .NetworkSettings.IPAddress }}' CONTAINER
#停止容器
docker stop
#删除容器,需要停止的容器才能删除,否则需要加--force
docker rm
#创建容器内数据卷/webapp
docker run -d -P --name web -v /webapp training/webapp python app.py
#创建容器内的数据卷/webapp并挂载到宿主机的/src/webapp, 宿主机需要绝对路径
#Dockerfile无法用这种方式挂载
docker run -d -P --name web -v /src/webapp:/webapp training/webapp python app.py
#创建数据卷/dbdata 命名成dbdata
docker run -d -v /dbdata --name dbdata training/webapp
#容器db1挂载dbdata
docker run -d --volumes-from dbdata --name db1 training/webapp
#容器db2挂载dbdata,可以让多个容器都共享同一个dbdata
docker run -d --volumes-from dbdata --name db2 training/webapp
#要删除dbdata 需要再最后一个挂载的容器上docker rm -v,否则就算删除其他挂载容器也不会删除这个卷。
#备份、恢复或者迁移数据卷
#挂载宿主机的当前目录到容器里的/backup
#挂载/dbdata
#执行tar cvf /backup/backup.tar /dbdata, 打包/dbdata目录到/backup/backup.tar
#此时宿主机当前目录已经有backup.tar
docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
#创建需要恢复到的目录
docker run -v /dbdata --name dbdata2 ubuntu /bin/bash
#解压到对应目录
docker run --volumes-from dbdata2 -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar
#容器连接link
docker run -d --name link1 training/webapp
#--link name:alias 想link的容器:link容器的别名
docker run -d -P --name link2 --link link1:link1 training/webapp python app.py
Dockerfile
11
volumes写dockerfile的时候无法挂载本地目录,使用 --volumes-from=容器id 来做基于volume互联
基于link互联,跨主机用connectable,实际应用不多。
基于网络互联。
1.是docker-proxy,新版本移除,容器内生成虚拟网卡
2.是 --net=host,共享主机网卡。 缺陷是物理机的端口有限并且不能重复占用
3.多容器共用一个IP网络。-net=container:xxxserver 同一台机器里用localhost访问
4.docker容器里的ip让其他主机都能访问。
linux路由机制打通网络
namespace