一:docker介绍
码头工人,开源的容器引擎,轻量级的虚拟机,可以看成是一个进程,这个进程可以启动操作系统镜像,启动以后是容器,容器是沙箱环境,容器和容器之间没有任何关联
二:VMware虚拟机和docker应用场景不同:
1.虚拟机更擅长于彻底隔离整个运行环境。如: 云服务提供商(阿里服务器)通常采用虚拟机技术隔离不同的用户。
2.Docker通常用于隔离不同的应用程序,例如前端,后端以及数据库。
资源的使用率不同:虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。Docker占用系统资源小.
三:docker的版本
1.Docker-CE -> 社区版
(1)Stable 版(推荐安装使用) 稳定版,一个季度更新一次
(2) Edge 版 非稳定版,一个月更新一次
2.Docker-EE ->企业版,收费的
四:docker架构与核心组件
1.客户端:
linux终端, 用来操作docker指令
2.docker服务器:
管理docker容器和docker镜像,是守护进程(有一个应用程序, 没有操作终端,不能和用户进行交互,在后台周期性的执行某些操作)
3.docker镜像:
是操作系统类型的磁盘文件,用户可以自己制作, 也可以从官方提供的镜像仓库(docker hub) 下载
- nginx镜像:有一个操作系统, 上边安装了nginx
- ubuntu镜像:有一个ubuntu操作系统
- redis镜像:有一个操作系统, 上边安装了redis
- docker容器
通过docker操作命令可以将磁盘上的docker镜像启动, 启动之后就是docker容器,容器中运行的是一个操作系统
五:docker安装和卸载(见文章末尾)
六:docker加速器设置 -> 可选(见文章末尾)
七:查看docker版本时,遇到的权限问题
$ docker version
Client:
Version: 18.09.0
API version: 1.39
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:49:01 2018
OS/Arch: linux/amd64
Experimental: false
Got permission denied while trying to connect to the Docker
daemon socket at unix:///var/run/docker.sock: Get
http://%2Fvar%2Frun%2Fdocker.sock/v1.39/version:
dial unix /var/run/docker.sock: connect: `permission denied`
问题:对于/var/run/docker.sock文件默认权限660,拥有者root,有读写权限,组用户docker有读写权限,其他用户没有任何权限,当前用户itcast为其他用户
1.文件访问者:
拥有者u——-user
所属组g——-group
其他用户o—–other
2.文件访问权限的种类:
可读(r) 可写(w) 可执行(x)
解决方案:
解决方案1: 在指令前添加sudo
sudo docker version
解决方案2:将当前用户, 添加到docker组中
(1)检测docker组是否存在
vi /etc/group 在这个文件中搜索 docker 关键字
cat /etc/group
(2) 将当前用户添加到docker组中
sudo gpasswd -a itcast docker
sudo gpasswd -a 当前用户 要添加到的组
(3)重启docker服务器服务
sudo systemctl restart docker
(4)如果不行, 执行下边的命令,itcast用户默认在itcast组中,虽然已经添加到docker组,但是当前组可能是itcast组,所以进行组切换,切换到docker组
newgrp - docker
解决方案3: 修改/var/run目录下的docker.sock文件权限,文件默认权限是660,将权限改成666,让其他用户有读写权限
sudo chmod 666 docker.sock
电脑重启一次需要设置一次
八:docker服务相关操作命令
# 启动
sudo systemctl start docker
# 关闭
sudo systemctl stop docker
# 重启
sudo systemctl restart docker
# 查看状态
sudo systemctl status docker
五:docker安装和卸载
安装
# 1. 安装基本软件
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common lrzsz -y
# 2. apt仓库添加并阿里云的docker软件包
# 把下载的key添加到本地trusted数据库中。
$ sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 3. 升级软件源
$ sudo apt-get update
# 4. 安装docker
$ sudo apt-get install docker-ce -y
# 5. 测试docker
$ docker version
https://www.jianshu.com/p/07e405c01880
卸载
# 卸载软件
sudo apt-get purge docker-ce
- 删除对用的信息文件+应用程序
sudo apt-get remove docker-ce
- 只删除应用程序
# 删除目录
/etc/docker -> 身份认证目录
/var/lib/docker -> 存储镜像的
$ sudo rm /etc/docker /var/lib/docker -r
六:docker加速器设置 -> 可选
# docker安装完成之后, 启动docker容器需要镜像, 镜像需要从官方下载, 可以通过配置加速器, 提高下载速度
# 访问 https://dashboard.daocloud.io 网站,登录 daocloud 账户
# 提交下载镜像的速度
# 打开加速页面, 拷贝下边的命令到linux终端, 执行
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
# 可以去 /etc/docker/daemon.json
这个文件中添加了一句话:
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}
# 重启docker服务
sudo systemctl restart docker