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视图工具来测试连接
相关推荐
JIAWAP41 分钟前
Linux环境安装Maven
java·linux·centos·maven
程序猿阿伟1 小时前
随着云计算和容器技术的广泛应用,如何在这些环境中有效地运用 Shell 进行自动化部署和管理?
运维·自动化·云计算
前后端杂货铺1 小时前
阿里云ecs服务器,nginx多域名多项目部署教程,含本地部署教程
服务器·nginx·阿里云
真果粒wrdms2 小时前
【SQLite3】常用API
linux·服务器·c语言·jvm·数据库·oracle·sqlite
金灰2 小时前
14-Django项目--文件上传-Excel
服务器·前端·javascript
Roc-xb2 小时前
Failed to get D-Bus connection: Operation not permitted
docker·wsl·centos7
Tassel_YUE3 小时前
iptables配置实现NAT(随手记)
linux·运维·服务器·网络·iptables
five-five3 小时前
一文全解Nginx
运维·nginx
IT利刃出鞘4 小时前
SecureCRT--使用sftp上传和下载文件
linux·运维·服务器
WolvenSec6 小时前
网络基础:EIGRP
运维·网络·安全·智能路由器