注:本文参考尚硅谷Docker实战教程初级篇
一. Docker用途
把代码和相关依赖环境一起打包,方便移植到别人的各式各样的电脑上运行而不会出现环境配置的麻烦,可以理解为轻量级的虚拟机
Docker只能在Linux上运行
二. Docker关键的三个概念
- Image(镜像):类比Java中的类,用于创建不同的container(容器),也可以理解为创建虚拟机时需要的iso镜像文件
- Container(容器):类比Java中的一个类new出来的对象,真正干活的地方,就是Docker图标鲸鱼背上的一个个集装箱
- Dockerfile:自动化脚本,用于创建Image镜像
Extra:Docke与k8s什么关系?Docker是多个Container运行在一个机子上,k8s将多个Container分发到一个由若干机子组成的集群(cluster)上运行
三. 常用指令
-
docker pull 从网站下载镜像
-
docker images 查看本机全部镜像
-
docker ps 查看运行的容器
-
docker run -it --name=myu1 ubuntu /bin/bash 前台交互启动:拉起一个容器,-it表示预留一个交互窗口在前面一直等着用户输入,/bin/bash指定shell解释器
docker run -d redis:6.0.8 后台守护进程启动,redis没必要在前台交互式启动,不然很容易就被别人终止了
run指令就像new操作一样
run指令的额外参数:
–privileged=true(容器内的用户真正拥有root权限)
-v /宿主机绝对路径:/容器内目录(用于backup) -
docker exec -it 容器ID bashShell 进入正在运行的容器
eg: docker exec -it 3030d73c7fb9 /bin/bash 进入后台运行的redis container交互界面 -
exit 退出并终止容器
ctrl+p+q 退出,容器不停止 -
docker start/restart 容器ID 开启/重启容器
docker stop 容器ID 停止容器
docker rm 容器ID 删除已停止的容器 -
docker cp 容器ID:容器内某文件的路径(含文件名) 本机路径(不含文件名) 将容器内的文件备份到本机
-
docker export 容器ID>文件名.tar 把某个容器打包成tar格式的镜像文件,保存
cat xxx.tar | docker import - 镜像用户/镜像名:镜像版本号 根据tar文件创建镜像
导入/导出容器 -
docker commit -m 将当前镜像升级(安装某些新包),提交为一个新镜像
四、extra
volume数据卷一定要挂,尤其是数据库相关的容器,stop/rm之后还能复原