docker(一)安装与快速入门
一、docker在centos的安装
# 导入密钥,避免签名验证报错
rpm --import https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
# 清理旧源(如果有)
rm -f /etc/yum.repos.d/docker-ce.repo
# 添加阿里云 Docker 源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 适配 CentOS 7,替换源中的版本变量
sed -i 's/$releasever/7/g' /etc/yum.repos.d/docker-ce.repo
# 清理并重建 yum 缓存
yum clean all
yum makecache fast
# 先安装基础依赖
yum install -y slirp4netns fuse-overlayfs
# 安装指定版本的 Docker(和你本地 RPM 包版本一致)
yum install -y docker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io-1.6.20
# 重新加载 systemd 配置
systemctl daemon-reload
# 启动 Docker 服务
systemctl start docker
# 设置开机自启
systemctl enable docker
# 验证版本
docker -v
# 测试运行容器
docker run --rm hello-world
systemctl restart docker
systemctl stop docker
二、docker部署mysql
1.部署
先配置国内镜像仓库
[root@VM-0-16-centos docker]# vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.1ms.run"
]
}
[root@VM-0-16-centos docker]# systemctl daemon-reload
[root@VM-0-16-centos docker]# systemctl restart docker
[root@VM-0-16-centos docker]# docker info | grep -i mirror
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
mysql
这里下载的不是安装包,而是镜像。镜像中不仅包含了MySQL本身,还包含了其运行所需要的环境、配置、系统级函数库。因此它在运行时就有自己独立的环境,就可以跨系统运行,也不需要手动再次配置环境了。这套独立运行的隔离环境我们称为容器。

Docker本身包含一个后台服务,我们可以利用Docker命令告诉Docker服务(守护进程),我们想要下载的应用。Docker服务部署应用时,首先要去搜索并下载应用对应的镜像,然后根据镜像创建并允许容器,应用就部署完成了。
2.解读命令
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
mysql
-
docker run -d:创建并运行一个容器,-d则是让容器以后台进程运行 -
--namemysql: 给容器起个名字叫mysql,你可以叫别的 -
-p3306:3306: 设置端口映射。-
容器是隔离环境,外界不可访问。但是可以将宿主机端口映射容器内到端口,当访问宿主机指定端口时,就是在访问容器内的端口了。
-
容器内端口往往是由容器内的进程决定,例如MySQL进程默认端口是3306,因此容器内端口一定是3306;而宿主机端口则可以任意指定,一般与容器内保持一致。
-
格式:
-p 宿主机端口:容器内端口,示例中就是将宿主机的3306映射到容器内的3306端口,当你访问宿主机的端口,就会映射到容器内对应的接口。
-
-
-e KEY=VALUE: 配置容器内进程运行时的一些参数-
格式:
-e KEY=VALUE,KEY和VALUE都由容器内进程决定 -
案例中,
TZ=Asia/Shanghai是设置时区;MYSQL_ROOT_PASSWORD=123是设置MySQL默认密码
-
-
mysql: 设置镜像名称,Docker会根据这个名字搜索并下载镜像-
格式:
REPOSITORY:TAG,例如mysql:8.0,其中REPOSITORY可以理解为镜像名,TAG是版本号 -
在未指定
TAG的情况下,默认是最新版本,也就是mysql:latest
-
更多推荐




所有评论(0)