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

相关推荐
happymagic1 小时前
vmware workstation Pro 虚拟机设定启停的时间段
运维·服务器·windows
一只鹿鹿鹿1 小时前
三甲综合智慧医院信息化总体解决方案(PPT文件)
大数据·运维·物联网·安全·政务
AI的探索之旅1 小时前
BOM管理的AI自动化:从原理图到采购清单,我搭了一套全自动工具链
运维·人工智能·自动化
码上上班2 小时前
JumpServer 企业完整实操手册
容器
PC2005-cloud2 小时前
Windows 下 WSL2 + Docker Desktop + Ubuntu 开发环境搭建指南
windows·ubuntu·docker
Kina_C2 小时前
HAProxy 负载均衡实战:从安装配置到高级参数详解
linux·运维·负载均衡·haproxy
Tyfrank3 小时前
Linux内核收包路径及中断
linux·运维·单片机
阳光九叶草LXGZXJ4 小时前
达梦数据库-报错-11-cmd 13 validate error
linux·运维·数据库·sql·学习
~光~~4 小时前
【嵌入式linux学习_OV8858 bring up】L1_从Sensor到RK3588发生了什么
linux·运维·学习
运维大师4 小时前
【K8S 运维实战】32-GitOps实践ArgoCD
运维·kubernetes·argocd