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。
1.首先安装 yum-utils, 配置镜像源需要使用

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

  1. docker仓库拉取镜像到本地仓库

docker pull

3.删除本地镜像(该镜像有容器后不能删除,必须先删除该镜像容器后才能删除该容器)

docker rmi 镜像名+版本 / 镜像 id

  1. dockerfile构建镜像

docker build

5.保存镜像到本地**,生成tar****文件**

docker save

6.载入本地镜像

docker load -i 镜像名

7.推送镜像到服务器**(目前用不到)**

docker push

(4)容器命令

1.创建一个新的容器并运行
docker run 镜像名
2.查看容器

docker ps -a


3.启动容器
docker start 容器名
4.停止容器
docker stop 容器名
5.删除容器 (删除容器前必须先停止容器)
docker rm 容器名
6.查看容器日志

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


docker run命令的常见参数:
--name:指定容器名称
--restart=always 自动启动
--privileged=true 拥有特权
-p:指定端口映射
-d:让容器后台运行

2.进入到容器

docker exec -it 容器名 / 容器 id bash

3.登录****mysql

mysql -uroot -proot

  1. 修改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容器一样

其他软件安装操作一样

相关推荐
一袋米扛几楼98几秒前
【密码学】CrypTool2 工具是什么?
服务器·网络·密码学
vin_zheng1 小时前
破解企业安全软件网络拦截实战记录
运维
林姜泽樾3 小时前
Linux入门第十二章,创建用户、用户组、主组附加组等相关知识详解
linux·运维·服务器·centos
xiaokangzhe3 小时前
Linux系统安全
linux·运维·系统安全
feng一样的男子4 小时前
NFS 扩展属性 (xattr) 提示操作不支持解决方案
linux·go
南棱笑笑生4 小时前
20260310在瑞芯微原厂RK3576的Android14查看系统休眠时间
服务器·网络·数据库·rockchip
xiaokangzhe4 小时前
Nginx核心功能
运维·nginx
松果1774 小时前
以本地时钟为源的时间服务器
运维·chrony·时间服务器
XDHCOM4 小时前
ORA-32152报错咋整啊,数据库操作遇到null number问题远程帮忙修复
服务器·数据库·oracle
Highcharts.js4 小时前
Highcharts React v4.2.1 正式发布:更自然的React开发体验,更清晰的数据处理
linux·运维·javascript·ubuntu·react.js·数据可视化·highcharts