一、Docker架构
- 镜像(Image):Docker 镜像就相当于是一个模板,通过模板可以创建容器服务,即通过镜像可以创建多个容器(最终服务运行或者项目运行就在容器)
- 容器(Container):Docker利用容器技术,独立运行一个或一组应用,有启动、停止、删除等基本命令,一个容器就是一个简易的linux系统
- 仓库(Repository):仓库是存放镜像的地方,分公有仓库和私有仓库,类比git
二、安装Docker
1、卸载旧的版本
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2、安装需要的软件包
yum install -y yum-utils
3、 设置镜像仓库(使用阿里国内源安装docker)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、更新yum软件包索引
yum makecache fast
5、 安装docker,出现输入的界面都按 y
yum install docker-ce docker-ce-cli containerd.io
6、 查看docker版本,验证是否验证成功
docker -v
7、卸载docker(先卸载依赖,再删除默认工作路径中的资源)
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
配置阿里云的镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{ "registry-mirrors": ["https://ffnx1237.mirror.aliyuncs.com"] }
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
注意:
如果出现以下,是因为没有安装vim,ll没有打开。
apt-get update
apt-get install vim
vim ~/.bashrc
source ~/.bashrc
三、Docker服务相关命令
1、启动/停止/重启Docker服务
systemctl start/stop/restart docker
2、查看Docker服务的状态
systemctl status docker
3、开机即启动Docker服务
systemctl enable docker
四、Docker镜像相关命令
1、查看镜像
docker images
docker images -a #查看所有镜像
docker images -q #查看所有镜像的id
2、搜索镜像
docker search redis(镜像名)
3、拉取镜像(从Docker仓库下载镜像到本地,镜像格式为:名称+版本号,可以去www.hub.docker.com搜索对应版本)
docker pull redis:5.0(不写版本号默认是最新版)
4、删除镜像
docker rmi redis:5.0/de25a81a5a0b #按照redis的名称/IMAGE ID删除
docker rmi 'docker images -q' #删除所有镜像
五、Docker容器相关命令(根据镜像创建)
1、查看容器
docker ps #查看运行中的容器
docker ps -a #查看所有的容器
docker ps -aq #查看所有的容器的id
2、创建并进入容器
docker run [可选参数] image(根据哪个镜像创建容器)
#参数说明
-i 一直运行
-t 进入容器里面
-d 后台运行(注意:容器在后台运行时,必须要有个前台进行,否则docker发现没有应用就会自动停止)
-p 宿主机端口:容器内部端口 3344:80
--name=aaa 给容器起名
--rm 用完就删除,一般用来测试
docker run -it --name redis01 redis:5.0 /bin/bash
3、进入容器
docker exec -it r2(容器名) /bin/bash
4、启动/重启/停止/杀死容器
docker start/restart/stop/skill r2(容器名)
5、删除容器
docker rm r2(容器名)
docker rm 'docker ps -aq' #删除所有容器
6、查看容器信息
docker inspect r2
7、查看日志信息
docker logs -tf(显示日志) --tail number(要显示的日志条数)
docker logs -tf --tail 10 dce7b86171bf
六、Docker容器的数据卷
docker的思想就是将应用和环境打包成一个镜像。
如果数据都在容器中,那么一旦容器被删除,数据就会丢失。需求:数据可持久化
容器之间可以有一个数据共享的技术,docker容器中产生的数据,可以同步到本地linux中,这就是卷技术(将容器内的目录,挂载到linux上)。以后修改文件,可以直接修改本地,容器会自动同步。
配置数据卷,进行目录绑定
docker run -v 宿主机linux目录(文件):容器内目录(文件)
docker run -it -v /home/test : /home centos /bin/bash
注意:
- 1. 目录必须是绝对路径
- 2. 如果目录不存在,会自动创建
- 3. 可以挂载多个数据卷
七、配置数据卷容器
1、创建启动r3数据卷容器,使用-v参数设置数据卷
docker run -it --name=r3 -v /volume redis:5.0 /bin/bash
2、创建启动 r1、r2 容器,使用 --volumes-from 参数 设置数据卷
docker run -it --name=r1 --volumes-from r3 redis:5.0 /bin/bash
docker run -it --name=r2 --volumes-from r3 redis:5.0 /bin/bash