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

相关推荐
Shepherd06191 小时前
【Jenkins实战】Windows安装服务启动失败
运维·jenkins
Biomamba生信基地2 小时前
Linux也有百度云喔~
linux·运维·服务器·百度云
new_abc2 小时前
Ubuntu 22.04 ftp搭建
linux·运维·ubuntu
Algorithm15762 小时前
mac上使用docker搭建gitlab
macos·docker·gitlab
鹿鸣天涯2 小时前
‌华为交换机在Spine-Leaf架构中的使用场景
运维·服务器·网络
小白也有IT梦2 小时前
域名绑定服务器小白教程
运维·nginx
有梦想的咕噜3 小时前
Secure Shell(SSH) 是一种网络协议
运维·网络协议·ssh
dntktop3 小时前
免费,WPS Office教育考试专用版
运维
苹果醋33 小时前
C语言 strlen 函数 - C语言零基础入门教程
java·运维·spring boot·mysql·nginx
loong_XL4 小时前
automa 浏览器自动化工具插件
运维·自动化