Linux4(Docker)

目录

一、Docker介绍

二、Docker结构

三、Docker安装

[四、Docker 镜像](#四、Docker 镜像)

[五、Docker 容器](#五、Docker 容器)

[六、Docker 安装nginx](#六、Docker 安装nginx)

[七、Docker 中的MySQL部署](#七、Docker 中的MySQL部署)


一、Docker介绍

Docker:是给予Go语言实现的开源项目。

Docker的主要目标是"Build,Ship and Run Any App,Anywhere" 也就是通过对应的组件的封装,分发,部署,运行等 生命周期管理,是用户APP及运行环境能够做到**"一次封装,到处运行"**

Docker的设计理念:构建(build)、运输(ship)、运行(running)

二、Docker结构

  • image镜像:docker镜像就是一个只读模板,比如,一个镜像可以包含一个完整的centos,里面仅安装apache或用户的其他应用,镜像可以用来创建docker容器,另外docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下一个已经做好的镜像来直接使用;

  • container容器:docker利用容器来运行应用,容器是从镜像创建的运行实例,它可以被启动,开始、停止、删除、每个容器都是互相隔离的,保证安全的平台,可以把容器看做是要给简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序;

  • repostory仓库:仓库是集中存储镜像文件的沧桑,registry是仓库主从服务器,实际上参考注册服务器上存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag);

  • 仓库分为两种:公有仓库、私有仓库,最大的公开仓库是docker Hub,存放了数量庞大的镜像供用户下载;

三、Docker安装

bash 复制代码
第一步:安装依赖工具
yum -y install yum-utils device-mapper-persistent-data lvm2
第二步:下载镜像源
yum-config-manager  --add-repo  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
第三步: 安装
yum makecache fast    这句暂时不用了
 yum -y install docker-ce
第四步: 启动
systemctl start docker
第五步:查看状态
systemctl status docker
第五步: 测试
docker run hello-world

四、Docker 镜像

获取镜像:
docker pull 镜像名称

查看本地所有的镜像:
docker  images

删除本地镜像
docker  rmi  镜像标识

五、Docker 容器

bash 复制代码
运行容器:
docker   run  -d  -p 宿主机端口:容器端口 --name   容器名称   镜像的标识
参数解释:-d 代表后台执行-p 将当前Linux的端口和容器的端口号进行映射--name 容器的名字
查看正在运行的容器:
 docker   ps   -qa
参数解释 :-a 所有容器(包括没有运行的容器)-q 只查看标识

停止容器运行:
docker  stop  容器标识
启动容器:
docker  start  容器标识
删除容器: (只能删除停止运行的容器)
docker  rm   容器标识
docker rm  -f 容器标识  (强制删除容器,(即使是运行中的)

六、Docker 安装nginx

 1.获取镜像
docker pull nginx
 2. 创建容器并运行
docker run --name=my-nginx -p 80:80 -d  镜像编号
3. 测试
使用浏览器

docker run -d --name=my-nginx -p 12345:80 605c77e624dd
docker ps    docker ps 是 Docker 命令行工具中用于列出当前正在运行的容器的一个命令

Docker 中的nginx部署

bash 复制代码
以下是 Nginx 在 Linux Docker 中的常见目录结构:
/etc/nginx: 存放 Nginx 的配置文件。
/var/log/nginx: 存放 Nginx 的日志文件。
/usr/share/nginx/html: 存放 Nginx 的静态资源文件。
查看nginx的配置文件
docker exec my-nginx cat /etc/nginx/nginx.conf
bash 复制代码
将网站部署到docker中的nginx
 docker  cp  宿主机的网址目录   docker中的nginx名或id:/usr/share/nginx/html/
 docker  cp  ./qq  my-nginx:/usr/share/nginx/html/

七、Docker 中的MySQL部署

bash 复制代码
1.获取镜像
docker pull mysql
 2.创建环境目录:
cd /usr/local/
 mkdir mysql
 cd mysql
 mkdir master-data
3. mysql容器运行:
docker run --name  mysql-master  --privileged=true  -v 
/usr/local/mysql/master-data:/var/lib/mysql  -p 3306:3306  -e  
MYSQL_ROOT_PASSWORD=root  -d  daocloud.io/library/mysql:8.0.16  --character-set-server=utf8 --server-id=1 -
lower_case_table_names=1
参数:--privileged指定了当前容器是否真正的具有root权限-p表示宿主机上的某个端口映射到docker容器内的某个端口-d参数指定了当前容器是在后台运行--server-id 设置服务器的编号
3.配置mysql权限账户:
docker exec -it mysql-master /bin/bash
 4.登录主服务器mysql:
 mysql -uroot --p
 5. 修改密码和设置从服务器登录用户:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
 flush privileges;
 6. 配置防火墙,并用mysql视图工具来测试连接
相关推荐
Hellc00716 分钟前
使用 Docker 部署 RabbitMQ 并实现数据持久化
docker·rabbitmq·ruby
Charary21 分钟前
字符设备驱动开发与杂项开发
linux·驱动开发
梦游钓鱼1 小时前
在window终端创建docker容器的问题
运维·docker·容器
孤寂大仙v1 小时前
【Linux笔记】理解文件系统(上)
linux·运维·笔记
沉默的八哥1 小时前
K8S高可用Web应用部署方案
运维
winyh52 小时前
Vite 打包后Nginx部署配置
运维·nginx
钢板兽2 小时前
Java后端高频面经——JVM、Linux、Git、Docker
java·linux·jvm·git·后端·docker·面试
byxdaz2 小时前
NVIDIA显卡驱动、CUDA、cuDNN 和 TensorRT 版本匹配指南
linux·人工智能·深度学习
pyliumy2 小时前
在基于Arm架构的华为鲲鹏服务器上,针对openEuler 20.03 LTS操作系统, 安装Ansible 和MySQL
服务器·架构·ansible