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

相关推荐
M-C-B4 分钟前
配置带外与更改密码
运维·服务器
猿经验14 分钟前
tar.gz压缩文件在linux上解压异常问题:gzip:stdin:invalid compressed data
linux·运维·服务器
木卫二号Coding22 分钟前
宝塔-firefox(Docker应用)-构建自己的Web浏览器
linux·docker·开源
dawn31 分钟前
通过GRE协议组建VPN网络
运维·网络·vpn·gre
didiplus43 分钟前
Kubernetes 镜像拉取策略全解析:如何根据需求选择最佳配置?
云原生·容器·kubernetes
玄德公笔记1 小时前
docker-compose搭建sfpt服务器
服务器·docker·容器·sftp·docker-compose
m0_647999031 小时前
服务器分区与挂载(新手友好)
运维·服务器
跨境商城搭建开发1 小时前
一个服务器可以搭建几个网站?搭建一个网站的流程介绍
运维·服务器·前端·vue.js·mysql·npm·php
灰勒塔德1 小时前
Linux-----进程处理(文件IO资源使用)
linux·运维·算法
mqiqe1 小时前
Linux 安装rpm
linux·运维·数据库