linux第二课(docker的安装使用)
目录
一.关于docker
(1)背景引入
(2)docker介绍
(3)功能
(4)Docker架构
二.docker的安装及相关的命令
(1)docker的安装
(2)docker的配置
(3)docker镜像命令
(4)容器命令
三.docker安装myaql
编辑 四.数据卷挂载
1.数据卷挂载引入
2.数据卷挂载图解
3.数据卷的安装与相关操作
一.关于docker
(1)背景引入
由于在linux上我们要安装其它的软件如:jdk,mysql等,直接在linux上安装非常的麻烦,由于软件和linux系统之间是强关联的,所以直接在linux系统上安装与卸载软件非常的麻烦,需要各种配置,启动,卸载时有些还需要删除注册表非常的麻烦,为此就有了docker,直接将docker安装到linux上,再将其他软件安装到docker上,这样就使得软件和linux分离开,安装卸载就变得简单了。
(2)docker介绍
(1)docker是一个一个应用打包、分发、部署的容器 。
(2)Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux 机器上。
容器是完全使用沙箱机制,相互隔离 ,容器性能开销极低你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。总结 : docker 是一种容器技术,解决软件跨环境迁移的问题
(3)功能
(1)Docker是一个容器技术,用来将我们的软件和相关的依赖以及相关的库打包成一个安装包。
(2)可以将我们打包好的"安装包"(镜像)通过上传到镜像仓库,可以让其他人也访问。
(3)只要我们拿到打包好的"安装包"就可以使用相关命令模拟出该软件的运行环境然后就可以在相关的操作系统上运行。
(4)Docker架构
仓库( Repository ): 是 docker 提供的一个用来保存镜像的仓库 .镜像( Image ) : 镜像就是一个可执行的包 , 用来创建容器 ,docker 中每一个软件就是一个镜像 .容器( Container ): 容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。(各个容器之间是相互独立的)
二.docker的安装及相关的命令
(1)docker的安装
docker可以运行到各种的操作系统上,本次以CentOS8安装 Docker。
yum install -y yum-utils
2.设置更新docker镜像源
yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
4.测试docker版本
docker -v
5.启动与停止常用命令
docker安装成功后并没有启动,所以安装成功后需要使用启动命令启动docker启动命令systemctl start docker关闭命令systemctl stop docker设置开机自动启动systemctl enable docker
(2)docker的配置
配置镜像加速
1.在etc下创建docker目录
mkdir -p /etc/docker
2.进入docker目录
cd /etc/docker
3.在docker目录中创建daemon.json文件
touch daemon.json
4.修改文件
vim daemon.json
{"registry-mirrors": ["https://dockerhub.icu"]}
5.重载配置
systemctl daemon-reload
6.重启
systemctl restart docker
注意:该镜像配置可能不成功无法连接镜像库(如下从配置的镜像仓库下载mysql镜像失败)
这时候就可以使用本地的镜像,将如mysql镜像即为以tar结尾的文件直接拖到在opt中,这样的话就可以不用从docker仓库中下载镜像了。
(3)docker镜像命令
1.镜像列表
docker images
2. 从docker仓库拉取镜像到本地仓库
docker pull
3.删除本地镜像(该镜像有容器后不能删除,必须先删除该镜像容器后才能删除该容器)
docker rmi 镜像名+版本 / 镜像 id
4. 从dockerfile构建镜像
docker build
5.保存镜像到本地,生成tar文件
docker save
6.载入本地镜像
docker load -i 镜像名
7.推送镜像到服务器(目前用不到)
docker push
(4)容器命令
1.创建一个新的容器并运行
docker run 镜像名
docker ps -a
docker start 容器名
docker stop 容器名
docker rm 容器名
docker logs 容器名
三.docker安装myaql
1.安装mysql
docker run -d -p 3306:3306 \--name mysql \--restart=always \--privileged=true \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=root \mysql:8.0
2.进入到容器
docker exec -it 容器名 / 容器 id bash
3.登录mysql
mysql -uroot -proot
4. 修改root账号加密方式(注意登录进去后一定要修改root加密方式否则mysql连接linux中mysql连接不到)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
5. 退出
exit
四.数据卷挂载
1.数据卷挂载引入
我们在docker上安装好软件后,软件在容器中,以mysql为例,在mysql容器中要对mysql的数据进行操作必须访问mysql容器中存放mysql数据的目录,mysql将数据存放到data目录中,以删除操作为例如果在操作mysql时删除了该容器,那么mysql数据库中的数据都会被删除,为了防止此现象出现就引入了数据卷挂载,在创建容器时就在linux(宿主机)中创建一个目录(数据卷),用该目录与容器中存放数据的目录实现挂载,这样即时删除了该容器,但容器中数据还在,操作直接对该挂载进行操作。
2.数据卷挂载图解
数据卷是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。
3.数据卷的安装与相关操作
(1)创建mysql数据卷
mkdir -p /opt/mysql/data
(2)安装mysqkl数据卷与容器
docker run -d -p 3306:3306 \--name mysql \--restart=always \--privileged=true \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=root \-v /opt/mysql/data:/var/lib/mysql \mysql:8.0
(3)后续操作与创建mysql容器一样
其他软件安装操作一样