Linux安装Docker以及Docker入门操作

Docker概述

Docker是一个开源的应用性容器引擎 , 让开发者可以打包他们的应用以及依赖包到可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口(相互之间是隔离的,独立的,相互不影响的).

Docker 是一个应用打包、分发、部署的容器

诞生于2013年,基于Go语言实现

Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器(docker容器)中,然后发布到任何流行的Linux机器上

容器是完全使用沙箱机制,相互隔离

容器性能开销低

你可以把它理解为一个轻量的虚拟机,它只虚拟你的软件需要的运行环境,多余的一点也不要,而普通虚拟机则是一个完整的庞大的系统,包含各种你需不需要的软件。

为什么要安装Docker?

Linux软件安装

通过yum命令安装软件,是直接把软件安装到Linux系统中。 因为软件和系统是强关联的,各种各样的文件和配置和Linux相互粘连到一块的,所以安装和删除都比较麻烦。

图示

但是使用Docker之后就不会出现这些问题

Docker是一种容器技术,解决了软件和系统的强关联关系,使得软件的安装和卸载非常方便。

可以从图中看出Docker容器将软件和Linux隔离开,将软件直接安装在了Docker中,软件直接相互隔离互不影响,使得软件的安装和删除非常方便。

Docker架构

Docker安装

Docker 可以运行在 MAC , Windows , CentOS , UBUNTU 等操作系统上,本课程基于 CentOS8 安装
Docker 。
官网: https://www.docker.com
安装 yum-utils, 配置镜像源需要使用
yum 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 安装成功后并没有启动 ,
启动命令
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****服务命令

Docker****服务命令

镜像和容器
镜像( Image ): Docker 将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜
像。
容器( Container ):镜像中的应用程序运行后形成的进程就是容器,只是 Docker 会给容器做隔离,对
外不可见。

​​​​​​​​​​​​​​
安装镜像前给大家介绍一下什么是镜像,镜像相当于一个软件安装包,只不过比普通的软件安装包高级一点,这个软件安装包包装了应用程序,以及其所需要的依赖、环境等,这样一个软件安装包就叫做镜像
什么是容器,就字面意思就是一个容器装一个软件并管理软件,粗略的可以把容器理解为一个软件。
镜像列表
docker images
docker 仓库拉取镜像到本地仓库
docker pull
删除本地镜像
docker rmi 镜像名 / 镜像 id
载入本地镜像
docker load -i 镜像文件名
使用本地下载镜像的时候会遇到一个tar文件,这个相当于镜像(软件安装包)的压缩包

载入本地镜像的时候就相当于解压这个压缩包

Docker****容器命令

删除容器,需要容器停止运行,然后再把容器删除,然后删除镜像( 停止容器才能删除容器,删除容器才能删除镜像 ),如以下步骤
创建一个新的容器并运行
docker run 镜像名
查看容器
docker ps -a
启动容器
docker start 容器名
停止容器
docker stop 容器名
删除容器
docker rm 容器名
查看容器日志
docker logs 容器名

Docker安装mysql

下载镜像
docker pull mysql:8.0

安装(安装软件)
docker run -d -p 3306:3306 \
--name mysql \
--restart=always \
--privileged=true \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
mysql:8.0
进入到容器
docker exec -it 容器名 / 容器 id bash
登录 mysql
mysql -uroot -proot
修改 root 账号加密方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
退出
exit
docker run 命令的常见参数 :
--name :指定容器名称
--restart=always 自动启动
--privileged=true 拥有特权
-p :指定端口映射
-d :让容器后台运行

数据卷挂载

数据卷 是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。
它将宿主机目录映射到容器内目录,方便我们操作容器内文件,或者方便迁移容器产生的数据到宿主机目录。
在执行 docker run 命令时,使用 -v 数据卷:容器内目录可以完成数据卷挂载。
由于容器内的目录操作起来不方便,例如mysql数据目录,Tomcat项目部署目录。所以可以在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

Docker安装nginx

Nginx 是一款是由俄罗斯的程序设计师所开发高性能的 Web 服务器 ( 只能运行前端项目 , 不能运行
java 项目 ) 。
其特点是占有内存少,并发能力强,事实上 nginx 的并发能力在同类型的网页服务器中表现较好,
中国大陆使用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等等。
Nginx 专为性能优化而开发,性能是服务器最重要的考量,实现上非常注重效率,能经受高负载的
考验,据报告能支持高达 50,000 个并发连接数。
拉取镜像
docker pull nginx:1.24
创建数据卷
mkdir -p /opt/nginx/html
安装命令

docker run -d -p 80:80 \
--name nginx \
--restart=always \
--privileged=true \
-v /opt/nginx/html:/usr/share/nginx/html \
nginx:1.24

相关推荐
ulias2126 小时前
Linux系统中的权限问题
linux·运维·服务器
青花瓷7 小时前
Ubuntu下OpenClaw的安装(豆包火山API版)
运维·服务器·ubuntu
问简8 小时前
docker 镜像相关
运维·docker·容器
Dream of maid8 小时前
Linux(下)
linux·运维·服务器
齐鲁大虾8 小时前
统信系统UOS常用命令集
linux·运维·服务器
Benszen9 小时前
Docker容器化技术实战指南
运维·docker·容器
ZzzZZzzzZZZzzzz…9 小时前
Nginx 平滑升级:从 1.26.3 到 1.28.0,用户无感知
linux·运维·nginx·平滑升级·nginx1.26.3·nginx1.28.0
Hommy889 小时前
【开源剪映小助手】Docker 部署
docker·容器·开源·github·aigc
一叶知秋yyds10 小时前
Ubuntu 虚拟机安装 OpenClaw 完整流程
linux·运维·ubuntu·openclaw
斯普信云原生组11 小时前
Prometheus 环境监控虚机 Redis 方案(生产实操版)
运维·docker·容器