Docker在windows系统以及Linux系统的安装

Docker简介和安装 Docker是什么

Docker 是一个应用打包、分发、部署的工具 你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要, 而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。

跟普通虚拟机的对比 特性 普通虚拟机 Docker 跨平台 通常只能在桌面级系统运行,例如 Windows/Mac,无法在不带图形界面的服务器上运行 支持的系统非常多,各类 windows 和 Linux 都支持 性能 性能损耗大,内存占用高,因为是把整个完整系统都虚拟出来了 性能好,只虚拟软件所需运行环境,最大化减少没用的配置 自动化 需要手动安装所有东西 一个命令就可以自动部署好所需环境 稳定性 稳定性不高,不同系统差异大 稳定性好,不同系统都一样部署方式 打包、分发、部署

打包:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包分发:你可以把你打包好的“安装包”上传到一个镜像仓库,其他人可以非常方便的获取和安装部署:拿着“安装包”就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在 Windows/Mac/Linux。

Docker部署的优势

常规应用开发部署方式:自己在 Windows 上开发、测试 --> 到 Linux 服务器配置运行环境部署。在学习一些东西的时候可以让自己从复杂的部署和配置中解放出来,能够全身心的去学习。

问题:我机器上跑都没问题,怎么到服务器就各种问题了

用 Docker 开发部署流程:自己在 Windows 上开发、测试 --> 打包为 Docker 镜像(可以理解为软件安装包) --> 各种服务器上只需要一个命令部署好

优点:确保了不同机器上跑都是一致的运行环境,不会出现我机器上跑正常,你机器跑就有问题的情况。

Docker 通常用来做什么 应用分发、部署,方便传播给他人安装。特别是开源软件和提供私有部署的应用 快速安装测试/学习软件,用完就丢(类似小程序),不把时间浪费在安装软件上。例如 Redis / MongoDB / ElasticSearch / ELK 多个版本软件共存,不污染系统,例如 Python2、Python3,Redis4.0,Redis5.0 Windows 上体验/学习各种 Linux 系统 重要概念:镜像、容器

镜像:可以理解为软件安装包,可以方便的进行传播和安装。容器:软件安装后的状态,每个软件运行环境都是独立的、隔离的,称之为容器。

Windows安装

写在前面,如果直接在windows上安装docker的话,需要注意vm虚拟机是不是在挂载状态,安装docker后,挂载状态的虚拟机就无法启动了,只能重启

桌面版: 服务器版:

安装后重启前先做如下操作:

控制面板->程序->启用或关闭 windows 功能,开启 Windows 虚拟化和 Linux 子系统(WSL2)

设置开机启动 Hypervisorbcdedit /set hypervisorlaunchtype auto

注意要用管理员权限打开 PowerShell

确保 BIOS 已开启虚拟化,下图检查是否已开启好

Linux安装 环境准备
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
安装docker
yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken
更新本地镜像源
# 设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

#安装docker
yum install -y docker-ce

启动docker

systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务
[luomuchen@docker201 /]$ systemctl status docker
● docker.service - Docker Application Container Engine
   Active: active (running) since 二 2022-10-25 15:22:09 CST; 1h 11min ago #active (running)为启动成功

设置镜像源 windows 镜像加速器 镜像加速器地址 Docker 中国官方镜像 DaoCloud 镜像站 Azure 中国镜像 科大镜像站 阿里云 https://<your_code>.mirror.aliyuncs.com 七牛云 网易云 腾讯云

"registry-mirrors": [
    "https://registry.docker-cn.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.ccs.tencentyun.com"
  ]
Linux
#创建文件夹
mkdir -p /etc/docker
#在文件夹中创建一个文件
touch daemon.json
#写入配置
vim daemon.json
{
	"registry-mirrors": [
    	"https://registry.docker-cn.com",
    	"https://docker.mirrors.ustc.edu.cn",
    	"https://mirror.ccs.tencentyun.com"
  	]
}
#重新加载文件
sudo systemctl daemon-reload
#重启docker
sudo systemctl restart docker
Docker快速安装软件 直接安装的缺点 安装麻烦,可能有各种依赖,运行报错。例如:WordPress,ElasticSearch,Redis,ELK 可能对 Windows 并不友好,运行有各种兼容问题,软件只支持 Linux 上跑 不方便安装多版本软件,不能共存。 电脑安装了一堆软件,拖慢电脑速度。 不同系统和硬件,安装方式不一样 Docker 安装的优点 一个命令就可以安装好,快速方便 有大量的镜像,可直接使用 没有系统兼容问题,Linux 专享软件也照样跑 支持软件多版本共存 用完就丢,不拖慢电脑速度 不同系统和硬件,只要安装好 Docker 其他都一样了,一个命令搞定所有 安装Redis

使用命令行执行:

docker run -d -p 6379:6379 --name redis redis:latest

命令参考:

安装Workpress

workpress需要挂载数据库,所以这里采用docker-compose.yml的方式

version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      #MYSQL_ROOT_PASSWORD: 123456  #如果mysql报错无法启动,则加上这一条。
      MYSQL_RAND::OM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:

执行命令行

docker-compose up -d

注意:这里的docker-compose.yml存放目录不能包含中文,否则会报错,命令行要在当前目录下执行。

27人参与, 0条评论 登录后显示评论回复

你需要登录后才能评论 登录/ 注册