Docker基础理论以及安装
- 一、什么是Docker
- 二、安装Docker
- (1)卸载旧版本
- (2)搭建 Docker 的仓库
- (3)安装 Docker 包
- (4)配置镜像加速源
- (5)确认 Docker 是否运行
- 三、快速上手
- 指令解析
一、什么是Docker
DOcker是一种开源的容器化平台,目的是为了将我们写好的程序以及周边依赖(代码,系统工具,库等),打包成一个标准化的、可移植的容器,然后发布到任何支持Docker的机器上运行,是一个偏向运维方向的工具。
一句话来说就是快速构建,运行,管理应用的工具。
二、安装Docker
本次安装教学通过Ubuntu22.04发行版本进行教学。
(1)卸载旧版本
sudoaptremove$(dpkg --get-selections docker.iodocker-composedocker-compose-v2 docker-doc docker-buildx podman-docker containerd runc|cut-f1)你的 Linux 发行版可能会提供非官方的 Docker 包,这些包可能会冲突使用了 Docker 提供的官方包。
(2)搭建 Docker 的仓库
# Add Docker's official GPG key: 添加 Docker 的 GPG 密钥sudoaptupdatesudoaptinstallca-certificatescurlsudoinstall-m0755-d/etc/apt/keyringssudocurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg-o/etc/apt/keyrings/docker.ascsudochmoda+r /etc/apt/keyrings/docker.asc# Add the repository to Apt sources: 添加 Docker 仓库到 APT 源sudotee/etc/apt/sources.list.d/docker.sources<<EOF Types: deb URIs: https://download.docker.com/linux/ubuntu Suites:$(./etc/os-release&&echo"${UBUNTU_CODENAME:-$VERSION_CODENAME}")Components: stable Architectures:$(dpkg --print-architecture)Signed-By: /etc/apt/keyrings/docker.asc EOFsudoaptupdate上述指令是把 Docker 的官方软件仓库添加到你的 Ubuntu 系统里。
Ubuntu 用 GPG 签名来验证软件包是不是真的来自 Docker 官方、有没有被篡改。没有这个密钥,apt 会拒绝从 Docker 仓库安装包(会出现 “NO_PUBKEY” 之类的报错)。
(3)安装 Docker 包
sudoaptinstalldocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin(4)配置镜像加速源
Docker官方的加速源在国外,对于国内用户访问来说速度比较慢,所以配置一下镜像加速源,能提高访问速度,这里使用腾讯云的镜像加速源。
首先在你的Ubuntu机器上执行:
vim/etc/docker/daemon.json他会创建并通过vim编辑器打开这个daemon.json文件。
再写入下述内容:
{"registry-mirrors":["https://mirror.ccs.tencentyun.com"]}保存之后重启Docker服务:
sudosystemctl restartdocker通过下述指令确认镜像加速源是否配置成功:
sudodockerinfo查看信息中是否包含下面条例,有则配置成功了。
(5)确认 Docker 是否运行
sudosystemctl statusdocker出现图中running字样即docker正在运行。
若没有运行则输入下面指令进行手动启动:
sudosystemctl startdocker后续再输入status这个指令确认docker是否正在运行。
三、快速上手
我们以mysql为例,快速上手部署一个镜像。
在部署之前需要了解docker两个核心概念:镜像、容器。
镜像就是指一个只读的、打包好的文件系统快照,里面包含了:
一个精简的操作系统(比如 Debian、Alpine)、应用程序本身(比如 MySQL、Nginx)、应用依赖的库、运行时、环境变量、配置、默认要执行的命令(CMD/ENTRYPOINT),简单点就是一个打包好的,可以直接运行的应用程序,镜像本身不会运行,运行的都是容器。
容器就是指镜像启动后产生的一个运行实例,运行的是容器,而非镜像本身,一个镜像可以拥有多个容器。
执行下面的指令即可快速创建并运行mysql容器:
dockerrun-d\--namemysql\-p3307:3306\-eTZ=Asia/Shanghai\-eMYSQL_ROOT_PASSWORD=你的密码\mysql:8.0指令执行完毕后,可以输入下面的指令来查看当前docker服务运行的容器:
sudodockerps会出现下面的信息:
最后也可以通过MySQL可视化工具去连接一下这个mysql容器,来验证是否创建成功容器。
指令解析
-d让容器在后台运行,命令执行完立刻返回终端。--name指定容器的名字,容器名字为唯一标识。-p端口映射,左边是宿主机的端口,右边为容器的端口 因为我Ubuntu本地已经有了MySQL服务,宿主机的端口再设为3306会导致和docker容器的mysql端口访问冲突,所以我这里演示的宿主机端口修改为了3307-e指定容器的环境变量,具体环境变量格式可以在Dockerhub中搜索查看 本次演示的两个环境变量: TZ --- 时区 MYSQL_ROOT_PASSWORD --- mysqlroot的密码