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视图工具来测试连接
相关推荐
中云DDoS CC防护蔡蔡36 分钟前
微信小程序被攻击怎么选择高防产品
服务器·网络安全·微信小程序·小程序·ddos
HPC_fac130520678162 小时前
以科学计算为切入点:剖析英伟达服务器过热难题
服务器·人工智能·深度学习·机器学习·计算机视觉·数据挖掘·gpu算力
yaoxin5211233 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin3 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
sinat_384241097 小时前
使用 npm 安装 Electron 作为开发依赖
服务器
朝九晚五ฺ7 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
自由的dream7 小时前
Linux的桌面
linux
xiaozhiwise8 小时前
Makefile 之 自动化变量
linux
Kkooe8 小时前
GitLab|数据迁移
运维·服务器·git