- Docker
- Docker安装
- Docker卸载
- Docker配置镜像源
- 配置镜像加速
- Docker服务命令
- 1.镜像操作命令
- 2.容器操作命令
- 安装Mysql
- **数据卷挂载**
Docker
在linux中软件安装说起:
以前在linux中安装软件,是直接安装在linux操作系统中,软件和操作系统耦合度很高,不方便管理.
因为linux版本不同,环境也就不同了.
docker是一种容器技术(软件),提供标准的应用镜像(包含应用+应用的依赖) , 我们就可以非常轻松在docker中安装应用,每一个应用安装好后,就是一个独立的容器.解决软件跨环境迁移的问题
主要功能:
-
打包: 可以把软件以及软件的依赖打包制作成一个镜像 (例如后面把springboot和jdk打包成一个镜像)
-
分发: 可以把打包好的镜像上传到镜像仓库,或者其他的linux系统中
-
部署: 可以非常方便的进行安卓,只需要一个命令即可.
Docker安装
1.安装yum配置工具
yum install -y yum-utils
2.配置docker的yum源
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 -v
5.启动,关闭,开机启动
systemctl start dockersystemctl stop dockersystemctl enable docker 设置开机启动 必须的
Docker卸载
停止服务
systemctl stop docker
卸载
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
删除文件
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
Docker配置镜像源
由于国外的镜像仓库目前不能访问,
所以我们需要配置一个其他的镜像源地址
配置镜像加速
在etc下创建docker
mkdir -p /etc/docker
进入docker目录
cd /etc/docker
创建daemon.json文件
touch daemon.json
修改文件
vim daemon.json
{"registry-mirrors": ["https://dockerhub.icu"]}
重载配置
systemctl daemon-reload
重启
systemctl restart docker
Docker服务命令
镜像(image):Docker将应用程序以及所需依赖、函数库、环境、配置等文件打包在一起,称为镜像
容器(container):镜像中的应用程序运行后形成的进程就行容器,只是Docker会给容器做隔离,对外部不可见
docker命令分两大类:
1.镜像操作命令
从镜像仓库下载镜像到docker本地
docker pull [应用]
查看本地镜像
docker images
删除docker镜像
docker rmi 镜像名:版本/镜像id
从docker保存镜像到linux本地( 需要保存到linux中那个目录, 进入到指定目录执行保存命令)
docker save 镜像名 > 镜像名.tar
从linux本地 加载镜像到docker中
docker load 镜像名 < 镜像名.tar
2.容器操作命令
通过镜像安装
docker run 参数
查看容器
docker ps -a
启动镜像
docker start 容器名
停止容器
docker stop 容器名
删除容器(卸载)
docker rm 容器名
安装Mysql
1.下载mysql镜像
在线下载 docker pull mysql:8.0
加载本地镜像 docker load
下载成功!!
下载网络问题
从Docker拉取镜像一直失败超时?这些解决方案帮你解决烦恼_docker拉取镜像超时-CSDN博客
如果下载存在网络问题,则在vim daemon.json添加一下设置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://do.nark.eu.org","https://dc.j8.work","https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2.安装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
3.启动,停止,删除容器
docker start 容器名 启动容器docker stop 容器名 停止容器docker rm 容器名 删除容器docker logs 容器名 查询容器日志
4.进入到容器中的命令行
docker exec -it 容器名 bash
进入mysql
mysql -uroot -proot
在mysql创建新的连接
Address写自己虚拟机地址
eg我自己ip:192.168.80.128
此时发现sql连接失败,这是由于两边密码的加密方式不一样,所以我们需要改变加密方式
改变加密方式在mysql终端
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
此时再去连接
退出
exit
数据卷挂载
容器是封闭的,与外界隔离的, 如果需要操作容器内的文件不方便,
可以将容器内的目录 与 容器外(linux)中的目录建议映射 挂载
创建mysql数据卷
mkdir -p /opt/mysql/data
安装记得删除之前的容器
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