1.docker是一种容器技术,它的出现大大降低了运维人员部署软件时的问题,以前开发将代码给运维部署的时候可能会因为环境的原因部署不成功,而docker的出现解决了这一问题,现在开发只要将代码,软件,配置文件,环境变量打包在容器内,交给运维,运维就能直接部署这套系统。
2.docker有点像虚拟机,但是docker和虚拟机有区别:
docker不需要捆绑一整套操作系统,只需要软件工作时的库资源和设置,系统变得轻量高效,并保证部署在任何环境中都能运行。
容器内的应用程序直接运行在宿主的内核上,容器没有自己的内核,所以会比传统虚拟机更加轻便。
每个容器相互隔离,每个容器都有自己的文件系统,容器之间进程不会相互影响。
docker三要素:
1.镜像
2.容器
3.仓库
docker images 查看镜像
docker ps -a 显示所有容器
docker login docker.io 登录dockerhub
docker search 镜像 搜索镜像
docker pull 镜像:版本号 下载镜像 不加版本号自动下载最新版本
docker image tag a24bb4013296 docker.io/morride/alpine:v3.12.0 给镜像打标签
注册表 仓库名 镜像名 版本
docker push docker.io/morride/alpine:v3.12.0 将镜像推送到仓库
docker pull docker.io/morride/alpine:v3.12.0 从仓库下载镜像
docker rmi alpine:latest 删除镜像
docker rmi -r alpine:latest 强制删除镜像
docker run 启动容器
-i #表示启动一个可交互式的容器 并能持续打开进行输入
-t #表示使用终端关联到容器的输出输入
-d #将容器放入后台运行
–rm #退出后即删除容器
–name #给容器起个名字
docker run -ti docker.io/morride/alpine:v3.12.0 /bin/sh #启动一个容器
docker run -ti –name test docker.io/morride/alpine:v3.12.0 /bin/sh #启动容器并命名
docker run -ti -d –name test01 docker.io/morride/alpine:v3.12.0 /bin/sh #放入后台并起名
docker run -ti –rm –name test02 docker.io/morride/alpine:v3.12.0 /bin/sh #启动一个一次性的容器
docker run -d –name test03 docker.io/morride/alpine:v3.12.0 /bin/sleep 300 #启动一个非交互式容器
docker exec -ti test03 /bin/sh #进入一个容器 也可根据id进入
docker stop #停止容器
docker start #启动容器
docker restart #重启容器
docker rm #删除容器 运行中的容器无法删除
docker rm -f #强制删除运行中的容器
for i in $(docker ps -a | grep -i exited |awk ‘{print $1}’);do docker rm -f $i;done #删除已经死掉的容器
docker rm -f $(docker ps -a -q) #删除所有容器