目录
1、Docker介绍
Docker是一个开源的应用容器引擎,让开发者开源打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux和windows操作系统的机器上,也开源实现虚拟化,容器完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker由以下几个部分组成:
DockerClient客户端
Docker Daemon守护进程
Docker image 镜像
Docker Container容器
Docker的基本原理
Docker会在隔离的容器中运行进程,当运行Docker run命令时,Docker会启动一个进程,并为这个经常分配其独占的文件系统,网络资源和以此进程为根进程的进程组。
2、Docker使用生态介绍
2.1 DockerClient客户端
用于同Docker daemon进行通信,执行用户指令,可以部署在DockerServer上,也可以部署在其他主机,能够链接到Docker daemon即可操作。
2.2 Docker Daemon守护进程
用于管理Docker中运行的容器、容器镜像、容器网络等,管理由Container提供的内容。
2.3 Docker image 镜像
把应用运行环境以及计算机资源打包方法,生成可在用于启动容器的不可变的技术设施的模板文件,主要用于启动一个容器。
2.4 Docker Container容器
由容器镜像生成,用于应用程序运行的环境,包含容器镜像中所有文件及用户后天价的文件,属于容器镜像生成的可读写,这也是应用程序活跃的空间。
2.5 Registry
容器镜像仓库,用于存储已生成容器运行模板的仓库,用户使用时,可直接从容器镜像仓库中下载容器镜像,即容器运行模板,就可以运行容器中包含的应用了。例如:Docker Hub,也可以使用Harbor实现企业私有的容器镜像仓库。
3、Docker命令介绍
3.1 启动类
# 启动docker
systemctl start docker
# 关闭docker
systemctl stop docker
# 重启docker
systemctl restart docker
# 设置自动启动docker
systemctl enable docker
# 查看docker运行状态
systemctl status docker
# 查看docker版本
systemctl version
# 或者
systemctl info
# 查看docker帮助
docker --help # 查看总体文档
docker run --htlp #查看docker run 的帮助文档
3.2 镜像类
# 查看镜像
docker images
# 搜索镜像
docker search [OPTIONS] # 镜像名字
docker search mysql
# 拉取镜像
docker pull mysql # 没有指定版本则默认最新版本
# 运行镜像
docker run testweb
# 删除镜像
docker rmi 镜像名/镜像ID # 若镜像在运行,则报错
docker rmi -f 镜像名/镜像ID # 强制删除一个镜像
# 加载镜像
docker load -i 镜像保存文件位置
docker load myimages.tar
# 保存镜像
docker save 镜像名/镜像ID -o 镜像保存位置和名称
docker save nginx -o /test/nginx.tar
3.3 容器类
# 1、查看正在运行的容器
docker ps
docker ps -a # 查看所有容器
#格式化访问,格式会更加清爽
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
# 2、创建容器
docker run [OPTIONS] IMAGE [CoMMAND] [AGR...]
# 常用参数
# --name=NAME # 为容器指定名字为NAME,不填写的话,系统自动为容器命名
# -d:后台运行容器并返回容器ID,即启动守护式容器(后台运行)
# -i:以交互式模式运行容器,通常与-t同时使用
# -t:为容器重新分配一个伪输入终端,通常与-i同时使用,即启动交互式容器(前台有伪终端,等待交互,一般连用,即-it)
# -P:指定端口映射,大写P
# -p:指定端口映射,小写P
docker run -it --name nginx -p 80:80 nginx
# 3、启动守护式容器(后台运行)
docker run -d nginx
# 4、停止容器
docker stop nginx
# 5、启动容器
docker start nginx
docker restart nginx
# 6、进入正在运行的容器
docker exec -it 容器名 bashshell
docker exec -it testweb bash
# 7、停止容器
docker stop testweb
# 8、强制停止容器
docker kill testweb
# 9、删除容器
docker rm 容器id
docker rm nginx
# 强制删除
docker rm -f 容器id
docker rm -f nginx
# 10、查看容器日志
docker logs nginx
# 11、查看容器内运行的进程
docker top 容器名
docker top nginx
# 12、查看容器内部细节
docker inspact 容器名
docker inspact nginx
# 13、创建容器数据卷挂载
# 通过-v参数来指定数据卷
docker run -d --name nginx -p 80:80 -v html:/usr/www/html/test nginx
# 14、查看数据卷
docker volume ls
# 15、查看数据卷详情
docker volume inspect 数据卷名
docker volume inspect html
# 16、删除数据卷
docker volume rm 数据卷名
docker volume rm html
3.4 网络类
# 查看网络
docker network ls
# 创建网络
docker network create 网络名
docker network create test
# 查看网络数据源
docker network inspect 网络名
docker network inspect test
# 删除网络
docker network rm 网络名
docker network rm test