一. docker的主要目标
通过对应用组件的封装,分发,部署,运行等生命周期的管理,达到应用级别的一次封装,到处运行。
二. docker容器虚拟化的优点
环境隔离
更快速的交付部署
更高效的资源利用
更迁移扩展
更简单的更新管理
docker build -t="vagabondize/test"
docker rmi vagabondize/test
docker run --name test1 vagabondize/test
三. docker镜像
镜像是一个只读的模板
docker inspect <imageID>
docker inspect -f {{.Os}} <imageID>
创建镜像
基于原有容器创建新的镜像
docker run -ti ubuntu bash
docker commit -a "vagabondize" -m "message" <containerID> vagabondize/test
迁出,载入镜像
docker save -o test.tar <imageID>
docker load --input test.tar
docker tag <imageid> "vagabondize/test"
docker push <域名>/<namespace>/<repo>:<tag>
删除镜像
docker rmi <image_id>
四. docker容器
容器是从镜像创建的运行实例,每个容器都是相互隔离的
1. 创建容器
1) create只创建
`docker create --name test_create -ti ubuntu`
2) run 创建并运行(create + start)
2. 使用容器
进入容器
启动时使用bash
docker run -i -t ubuntu /bin/bash
进入已启动容器的内部
docker exec -i -t <container_id> bash
守护台运行
后台启动容器
docker run -d ubuntu /bin/sh -C "while true;do echo hello world; sleep 1; done"
查看容器日志
docker logs -f <container_id>
终止容器
docker stop <container_id>
查看容器
查看终止的容器:
docker ps -a
查看运行的容器:
docker ps
删除容器
docker rm <container_id>
docker rm -f <container_id>
导入和导出容器
docker export <container_id> > test.tar
cat test.tar | docker import - vagabondize/hello:test
五. docker仓库
私有仓库
registry
管理私有仓库
docker-registry-ui
六. 数据卷
-v 标记创建一个数据卷,映射目录
docker run -d --name app1 -it -v ${PWD}/webapp:/root/webapp ubuntu bash
:ro 只读 默认:rw
docker run -d --name atest -v /root/test -ti ubuntu bash
docker run -d --name btest --volumes-from atest -ti ubuntu bash
备份
docker run -d --name dbdata -v /dbdata -ti ubuntu bash
docker run --volumes-from dbdata -v ${PWD}:/backup --name worker ubuntu \ tar cvf /backup/backup.tar /dbdata
docker run -d --name dbdata2 -v /dbdata -ti ubuntu bash
docker run --volumes-from dbdata2 -v ${PWD}:/backup ubuntu / tar xvf /backup/bacup.tar
七. docker网络
centos install
sudo yum install net-tools
sudo usermod -aG docker username
配置信任仓库
/lib/systemd/system/docker.service 添加 –insecure-registry 192.168:5000sudo systemctl daemon-reload
service docker restart
添加加速器
监听 netstat -nlp | grep 8080