Docker入门(清晰认识)

为什么学习Docker?

再学完linux后,我们需要远程对Linux虚拟机下载一些软件,如果在Linux里直接用命令下载软件会十分麻烦,所以我们需要通过使用Docker将软件直接下载到Docker中,这样更方便下载和卸载等操作。

一张图弄懂Docker

Docker 是一个应用打包、分发、部署的容器
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任 何流行的Linux 机器上
你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而 普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。

仓库(Repository):是docker提供的一个用来保存镜像的仓库.

镜像(Image):镜像就是一个可执行的包,用来创建容器,docker中每一个软件就是一个镜像.

容器(Container):容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等

简而言之就是通过远程仓库拉取到images镜像中,再通过容器Containers来运行即可。不需要下载再linux中下载软件,方便了许多.。

安装Docker

前提:我们已经安装了yum

安装yum-utils,配置镜像源需要使用

yun install -y yum-utils

设置更新docker镜像源

yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装

yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

测试docker版本

docker -v(命令行输入后如果显示出版本号则下载Docker成功)

启动常用命令

docker安装成功后并没有启动,

启动命令 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"] }(将这串放到daemon.json文件里)

重载配置

systemctl daemon-reload

重启

systemctl restart docker

Docker命令

镜像命令(images)

查看镜像列表

docker images

这就是我的docker镜像中的mysql redis nginx

从docker仓库拉取镜像到本地仓库

docker pull mysql(拉取mysql从远程仓库)

删除本地镜像

docker rmi 镜像名/镜像id

从docker保存镜像到linux本地

docker save 镜像名 > 镜像名.tar

从Linux本地 加载镜像到docker中(这两步可以永久性将镜像保存到Linux中,不然哪天pull镜像拉去不到就换地址吧不然就保留在你这Linux本地里去)

docker load 镜像名 < 镜像名.tar

容器命令(Containers)

启动容器

docker ps -a

启动容器

docker start 容器名

停止容器

docker stop 容器名

删除容器

docker rm 容器名(需要把容器停止了才能删除不然报错)

举例下载一个mysql

下载镜像

docker pull mysql:8.0

创建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

这里用到数据卷:你在容器中运行mysql、redis等会产生数据想要保存到linux上就这样挂载。

进入到容器

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

登录mysql

mysql -uroot -proot

修改root账号加密方式(不然容器中的mysql会乱码)

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '自定义一个密码';

退出

exit

相关推荐
JunLan~4 小时前
Rocky Linux 系统安装/部署 Docker
linux·docker·容器
sun0077006 小时前
ubuntu dpkg 删除安装包
运维·服务器·ubuntu
海岛日记6 小时前
centos一键卸载docker脚本
linux·docker·centos
小袁搬码8 小时前
Windows中指定路径安装DockerDesktop
windows·docker·容器·docker desktop
吃肉不能购8 小时前
Label-studio-ml-backend 和YOLOV8 YOLO11自动化标注,目标检测,实例分割,图像分类,关键点估计,视频跟踪
运维·yolo·自动化
学Linux的语莫8 小时前
Ansible使用简介和基础使用
linux·运维·服务器·nginx·云计算·ansible
qq_312920118 小时前
docker 部署 kvm 图形化管理工具 WebVirtMgr
运维·docker·容器
踏雪Vernon8 小时前
[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker编译环境镜像下载以及使用方式
linux·docker·容器·harmonyos
学Linux的语莫9 小时前
搭建服务器VPN,Linux客户端连接WireGuard,Windows客户端连接WireGuard
linux·运维·服务器