一. Docker概述
1. Docker为什么出现?
开发:我在我的电脑上可以运行!
运维:环境配置十分麻烦!
Docker:带着环境打包部署上线
2. Docker简介
容器虚拟化技术、
隔离、快速、轻便
2013年 Docker开源
Go语言
C-S架构:Server端 Docker守护进程
3. Docker的功能
1.应用更快交付和部署DevOps
2.应用更便捷的升级和扩缩容
3.更简单的系统运维
4.更高效的计算资源利用
二. Docker安装
参考官方文档:https://docs.docker.com/
配置阿里云镜像加速:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
三. Docker常用命令
官方文档:https://docs.docker.com/reference/
1. 帮助命令
docker version
docker info
docker <命令> --help
2. 镜像命令
dockerHub镜像仓库: https://hub.docker.com/
docker images //-a -q
docker search mysql //--filter=STARS=3000
docker pull mysql:5.7
docker rmi -f 镜像ID 镜像ID 镜像ID
docker rmi -f $(docker images -aq)
3. 容器命令
docker run centos
--name=”Name” -d后台运行 -it /bin/bash交互式进入容器
-p 指定端口映射关系 -P 随机指定端口
docker ps
-a -n=1 -q
exit:停止容器并退出
Ctrl+P+Q:不停止容器退出
docker rm -f 容器ID
docker rm -f $(docker ps -aq)
docker start 容器ID
docker restart 容器ID
docker stop 容器ID //停止容器
docker kill 容器ID //强制停止容器
4. 查看容器日志/进程/元数据
docker run -d centos //后台启动容器
docker run -d centos -c "while true;do echo yuntong;sleep 2;done" //生成日志
docker logs -t -f --tail 10 容器ID //查看日志
docker top 容器ID //查看容器中进程信息
docker inspect 容器ID //查看元数据
5. 进入容器/拷贝
docker exec -it 容器ID /bin/bash //开启一个新的终端进行交互
docker attach 容器ID //直接进入容器当前终端
docker cp 容器ID:容器内路径 宿主机路径
6. 可视化portainer
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
四. Docker镜像
1. 联合文件系统UnionFS
共用、分层
bootfs rootfs
2. commit镜像
使用commit命令提交一个容器为新的镜像
docker commit -m="add webapps" -a="yuntong" 2abfa51e2644 tomcat02:1.0
五. 容器数据卷
1. 为什么容器数据卷?
数据持久化、同步、共享
docker volume ls # 查看数据卷
docker vokume inspect 卷名