一、Docker
- 镜像(image):类似于虚拟机里的镜像,是一个只读的模板,独立的文件系统
- 容器(container):Docker容器是Docker镜像创建的运行实例,容器之间是相互隔离的,容器中可以运行特定的应用,包含特定应用代码以及所需的依赖文件
- 仓库(Repository):Docker的仓库功能类似于Github,用于托管镜像的
- 优点:多: 适用场景多
快: 环境部署快、更新快
好: 好多人在用,东西好
省: 省钱省力省人工(123原则)
-缺点: 太腻歪人: 依赖操作系统
不善于沟通:依赖网络
不善理财: 银行U盾等场景不能用
1.docker的安装
- cd docker源码目录
- 联网安装sudo apt-key add gpg
- 本地安装sudo dpkg -i docker-ce_17.03.2ce-0ubuntu-xenial_amd64.deb
- 检查Docker 是否安装正确(注意:联网状态)
- sudo docker run hello-world
2.启动与停止
- 安装完成Docker后,默认已经启动了docker服务
- 启动docker sudo service docker start
- 重启docker sudo service docker restart
- 停止docker sudo service docker stop
- 查看:docker images
- 历史:docker history 名称
- 改名:docker tag 旧名称 新名称
- 删除:docker rmi -f (强制删除) 名称
- 导出:docker save 名称 > 文件名.tar
- 导入:docker load < 文件名.tar
- 仓库拉取官方镜像:
- sudo docker image pull 镜像名称 或者 sudo docker image pull library/镜像名称
- 个人镜像:
- sudo docker image pull 仓库名称/镜像名称
- 本地导入镜像:
- sudo docker load -i 文件路径/镜像文件
3.删除镜像时有时会报错
- 报错原因是镜像中有容器存在
- 1.删除镜像中的容器 sudo docker rm id
- 2.再执行sudo docker image rm 镜像名称或id
二、docker容器
- 查看正在运行的容器:docker ps
- 查看所有容器:docker ps -a
- 创建:docker run 镜像名
- 启动:docker start 名称
- 停止:docker stop 名称
- 删除:docker rm 名称
docker container prune 删除所有未运行的容器
docker rm -f 名称 强制删除容器
-提交:docker commit -m ‘’ -a ‘’ 容器名称
镜像名称:版本
2.删除容器方法:
1.正常删除:删除已关闭的
- docker rm 1a5f6a0c9443
- docker container prune 删除所有关闭的容器
2.强制删除:删除正在运行的 - docker rm -f id
3.批量操作容器(一步到位的命令) - 停止所有容器 docker stop $(docker ps -q)
- 删除所有未运行容器docker rm $(docker ps -aq)
- 删除所有运行容器 docker stop $(docker ps -q) & docker rm $(docker ps -aq)
-注意:所有有docker的地方都要加sudo
3.容器制作镜像
- sudo docker commit 容器名 镜像名
- sudo docker save -o 保存的文件名 镜像名
- sudo docker load -i 文件路径/备份文件
- 常用可选参数说明:
- -i 表示以《交互模式》运行容器。
- -t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
- –name 为创建的容器命名。
- -v 表示目录映射关系,即宿主机目录:容器中目录。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
- -d 会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器)。
- -p 表示端口映射,即宿主机端口:容器中端口。
- –network=host 表示将主机的网络环境映射到容器中,使容器的网络与主机相同。