Docker简单介绍与使用以及下载对应镜像(项目前置)

Docker


在linux中软件安装说起:

以前在linux中安装软件,是直接安装在linux操作系统中,软件和操作系统耦合度很高,不方便管理.

因为linux版本不同,环境也就不同了.

docker是一种容器技术 (软件),提供标准的应用镜像(包含应用+应用的依赖) , 我们就可以非常轻松在docker中安装应用,每一个应用安装好后,就是一个独立的容器 .解决软件跨环境迁移的问题


主要功能:

  • 打包: 可以把软件以及软件的依赖打包制作成一个镜像 (例如后面把springboot和jdk打包成一个镜像)

  • 分发: 可以把打包好的镜像上传到镜像仓库,或者其他的linux系统中

  • 部署: 可以非常方便的进行安卓,只需要一个命令即可.


Docker安装

1.安装yum配置工具

复制代码
yum install  -y  yum-utils

2.配置docker的yum源

js 复制代码
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.安装

js 复制代码
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

4.测试

复制代码
docker -v

5.启动,关闭,开机启动

复制代码
systemctl start docker

systemctl stop docker

systemctl 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
相关推荐
一水鉴天1 天前
整体设计 逻辑系统程序 之18 Source 容器(Docker)承载 C/P/D 三式的完整设计与双闭环验证 之2
docker·架构·认知科学·公共逻辑
飞快的蜗牛1 天前
利用linux系统自带的cron 定时备份数据库,不需要写代码了
java·docker
火星MARK1 天前
k8s面试题
容器·面试·kubernetes
香吧香1 天前
Docker Registry 使用总结
docker
赵渝强老师1 天前
【赵渝强老师】Docker容器的资源管理机制
linux·docker·容器·kubernetes
haicome1 天前
deepseek部署
docker·ragflow·deepseek 部署
乄bluefox1 天前
保姆级docker部署nacos集群
java·docker·容器
每天进步一点_JL1 天前
Docker 是什么?
后端·docker·容器
一叶飘零_sweeeet1 天前
从 0 到 1 掌控云原生部署:Java 项目的 Docker 容器化与 K8s 集群实战指南
docker·云原生·kubernetes·项目部署
森林猿1 天前
docker-compose-kafka 4.1.0
docker·容器·kafka