docker入门
docker是什么
docker是一个开源的应用容器引擎
是直接运行在宿主操作系统之上的容器
使用沙箱机制完全虚拟出一个完整的操作
可以看做是一个轻量级的虚拟机
docker架构与核心组件
docker分为3大部分
1.客户端
linux终端,通过命令来操作
2.docker服务器
服务器用来管理容器和镜像,是一个守护进程,
也就是说是一个没有操作终端的程序
3.docker镜像
操作系统磁盘文件
nginx镜像---安装了nginx的操作系统
ubuntu镜像---安装了ubuntu的操作系统
redis镜像
用户可以自己制作docker镜像,也可以官方下载
4.docker容器
通过docker操作命令可以将磁盘上的docker镜像启动
启动之后,就是docker容器
5.镜像仓库
官方提供的镜像仓库,docker hub
docker安装
先更新下
sudo apt-get update
然后下载几个小工具
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common lrzsz -y
用curl下载阿里云秘钥
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"
升级软件源
sudo apt-get update
安装docker
sudo apt-get install docker-ce -y
测试一下
docker version
然后我们来配置一个docker加速器
我们来使用一个daocloud的加速器
打开 dashboard.daocloud.io
注册登录一下
然后我们点击 加速器
打开daocloud.io/mirror
然后我们看到linux配置加速器的命令
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://xxxxx.m.daocloud.io
我们执行一下就OK了
然后我们来重启一下docker服务
sudo systemctl restart docker
然后我们执行
docker version
测试一下
这里可能会发生一个权限问题 permission denied
我们有几个解决方案
1.加sudo
sudo docker version
2.将当前用户添加到docker组中
我们先检测一下docker组是否存在
vi /etc/group
然后我们可以看到所有的组
然后我们看到最下面 docker组已经存在了
docker:x:999;
然后我们执行
sudo gpasswd -a 用户名 docker
如果不行的话,就
newgrp - docker
然后重启下docker服务
sudo systemctl restart docker
然后执行docker version
成功
然后我们来说几个docker服务相关的命令
1.启动
sudo systemctl start docker
2.关闭
sudo systemctl stop docker
3.重启
sudo systemctl restart docker
4.查看状态
sudo systemctl status docker
然后我们来说下docker镜像管理
1.镜像搜索
docker search 镜像名
比如我们搜一个
docker search ubuntu
2.获取镜像
docker pull 镜像名
下载完成之后,就存储到了本地的镜像仓库
对应一个本地目录--- /var/lib/docker
3.查看镜像
docker images 或者 docker image ls
查看某个的话
docker images ubuntu
4.镜像别名
docker tag 现在的名字 别名
例如
docker tag nginx mynginx
5.镜像删除
docker rmi [OPTIONS] IMAGE [IMAGE...]
6.镜像的导出
docker save -o /home/images/mynginx nginx
7.镜像的导入
docker load -i mynginx
docker load < mynginx
然后说下docker容器管理
1.查看容器
启动的每个容器,都是一个进程
docker ps
2.创建容器
docker create
3.启动容器
docker start
4.创建启动
docker run
就等于create加上start
5.暂停
docker pause
6.取消暂停
docker unpause
7.重启
docker restart
8.关闭
docker stop
9.终止
docker kill
10.删除
docker rm
容器的进入和退出
1.创建并进入
docker run -it --rm --name myxx ubuntu bash
2.手动进入
docker exec
3.退出容器
exit
ctrl+D
然后我们来说一下
基于容器的镜像导入和导出
1.导出
docker export
2.导入
docker import
那么
基于镜像的导入导出 和
基于容器的导入导出 有什么区别呢
save和export
1.save导出,不能对镜像进行修改
2.export导出,原始镜像可以通过启动容器进行修改
3.export导出,会丢失镜像的历史记录
4.如果没有通过容器做修改,export导出的镜像小
load和import
1.都是将导出的镜像导入到本地镜像仓库
2.如果用load导入,镜像名无法修改
3.import导入,镜像名可以修改