目录
一、Docker介绍
二、Docker结构
三、Docker安装
四、Docker 镜像
五、Docker 容器
六、Docker 安装nginx
七、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安装
第一步:安装依赖工具 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 容器
运行容器: 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 nginx2. 创建容器并运行 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部署
以下是 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
将网站部署到docker中的nginxdocker cp 宿主机的网址目录 docker中的nginx名或id:/usr/share/nginx/html/docker cp ./qq my-nginx:/usr/share/nginx/html/
七、Docker 中的MySQL部署
1.获取镜像 docker pull mysql2.创建环境目录: cd /usr/local/mkdir mysqlcd mysqlmkdir 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/bash4.登录主服务器mysql:mysql -uroot –p5. 修改密码和设置从服务器登录用户: 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视图工具来测试连接