应用服务器部署:安装Docker及摘取镜像

一、什么是Docker

1、虚拟环境:

(1)完整模拟硬件的虚拟环境:VMWare,Hyper-V,Virtual-Box,VMServer等。
(2)不模拟硬件,只把虚拟环境当成一个应用程序(进程)来对待:Docker,非常轻量级的虚拟环境。
(3)在VMWare中安装一个Linux,标配10G+、最小化安装近2G,而在Docker中,安装一个最小化CentOS或Ubuntu,大概只需要200M。

2、Docker的特性与虚拟机的异同:

(1)安装虚拟机软件如:VMware,在此虚拟机软件上安装操作系统(下载),把操作系统的虚拟机文件备份,随时复制并启动该操作系统。
(2)在Linux上安装Docker软件,从镜像仓库拉取(Pull)操作系统或应用环境,基于该镜像文件创建一个容器(运行环境),备份容器以供下次使用(直接export容器,将容器提交(Commit)为本地镜像)
(3))虚拟机环境直接完全模拟一套全新的硬件环境,Docker环境不虚拟硬件,直接使用宿主机资源(Docker默认下不限制CPU,内存资源),也可以直接指定分配某个容器的CPU或内存资源。
(4)虚拟机可以直接与宿主机或局域网连接,分配IP地址(Brige,NAT),Docker容器无法获取IP地址(跟随于宿主机的IP地址)。
(5)镜像相当于是容器的模板,通过镜像创建容器,容器修改后也可提交为镜像,删除容器并不会删除镜像,删除镜像则无法创建容器。
在这里插入图片描述
Docker与Docker之间可以互相通信:依赖于宿主机的网关。Docker与宿主机之间可以互相通信,外部设备无法直接访问Docker,必须把端口映射给宿主机,所以Docker的端口必须保持在宿主机上的唯一性。

3、容器使用注意事项:

(1)尽量让一个容器做─件事情,或启动一个服务。
(2)尽量使用挂载的方式将数据文件挂载到容器中,容器里面尽量不要保存数据。
(3)尽量让容器按照Docker化的要求来使用容器,而不是安装一个虚拟机。
(4)尽量不使用交互模式来直接操作容器,而是在宿主机上执行命令,或者使用Docker File。(5)只要能解决问题,高效地解决问题,无论怎么用,都行。

二、安装过程

1、确保Linux内核3.X版本及以上,建议使用CentOS 7.X,64位。
2、先安装一些必备工具包:

  • 1.安装网络相关命令: yum install net-tools
  • ⒉.安装实用工具: yum install -y yum-utils device-mapper-persistent-data lvm2

3、配置yum下载源:
1.添加yum镜像: yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.更新yum缓存: yum makecache fast
4、安装Docker社区版:
安装docker-ce: yum -y install docker-ce
5、关于Docker服务启停
systemctl start/stop/restart/status docker
6、配置Docker的国内镜像
vi /etc/docker/daemon.json

{
    
    
	"registry-mirrors" : [
		"https://registry.dockercn.com",
		"http://hub-mirror.c.163.com",
		"https://docker.mirrors.ustc.edu.cn"
	]
}

保存,重启Docker,查看docker info是否生效

几个极其重要的概念:
1、镜像(lmage):
Docker相关站点事先制作好的带有操作系统或应用程序的一个文件包,下载回来后便可以启动Docker运行环境,类似于VMWare中的一个预先安装好虚拟机的虚拟机文件。自己也可以在自己的私有环境中制作镜像,供别人使用。通常的两个用于下载Docker镜像的知名站点: https://hub.docker.com/(速度极慢,不推荐),https://hub.daocloud.io/(国内镜像,推荐)
docker pull daocloud.io/library/centos:8.2.2004
2、容器(Container);:
镜像的具体可启动的实例:容器要有名称便于唯一区分,如果需要外部访问,则必须映射端口,如果要共享文件夹,还需要做文件映射夹,等等。。。。。
docker create -it --name centos8 -h mycentos8 -p 3307:3306 daocloud.io/library/centos:8.2.2004
docker container ls -a
3、实例:
正在运行的容器: docker ps
交互模式进入Docker容器内的命令行: docker exec -it centos8 /bin/bash
4、宿主机与容器之间交换文件
docker cp 宿主机文件 容器名:文件路径
5、利用run命令—次处理create + start:
创建并启动一个容器: docker run -it --name centos8 -h mycentos8 -p 3307:3306 centos:latest
另外,可以使用docker run --rm来创建和启动容器,–rm参数表示:退出容器时不保存数据。
6、在CentOS:Latest版本中安装MySQL 5.6:安装成8.0的MySQL,无法安装MySQL5.6版本,安装后无法启动MySQL服务。

四、在Docker中安装配置Woniusales

1、拉取镜像: docker pull centos:centos7.9.2009
2、创建容器: docker create -it --name centos7.9 -h mycentos7-p 3307:3306 -p 8081:8080 centos:centos7.9.2009
3、启动容器: docker start centos8
4、将MySQL 5.6的rpm源复制到容器中: docker cp ~/mysql5/-community-release-el/-10.noarch.rpm centos7.9:/opt/
5、进入容器: docker exec -it centos8/bin/bash
6、在容器中的命令提示符下安装MySQL:

安装源:rpm -ivh /opt/mysql57-community-release-e17-10.noarch.rpm
编辑源:/etc/yum.repos.d/mysql-community.repo,将5.6版本的enabled设置为1
清空缓存:yum clean al1
安装MysQL : yum install mysql-server -y
启动MySQL服务: systemctl status mysqld
Failed to get D-Bus connection:operation not permitted
发现此时无法启动MySQL,主要是因为默认的配置下,Docker不具备一台独立主机的所有功能,需要使用特权模式解决

7、使用特权模式创建Docker容器

扫描二维码关注公众号,回复: 14516766 查看本文章
停止容器:docker stop centos8
删除容器:docker rm centos8
特权模式建容器: docker create -ti --name centos7.9 -h mycentos7 --privileged=true -p 3307:3306 -p 8081:8080 centos:centos7.9.2009 /sbin/init
启动容器:docker start centos7.9
进入容器:docker exec -it centos7.9 /bin/bash

8、按照正常流程安装MySQL并使用systemctl start mysqld启动,在特权模式下将可以正常启动。
9、授权远程登录用户:

GRANT ALL PRIVILEGES ON *,* To 'qiang'@'%’ IDENTIFIED BY '123456’ WITH GRANT OPTION;
flush privileges;

10、远程利用Navicat登录,创建数据库woniusales,并运行SQL语句生成数据。
11、复制JDK、Tomcat和Woniusales.war文件到容器中
12、解压JDK,并在~/.bash_profile文件中配置环境变量:

export JAVA_HOME=/opt/jdk1.8.0_211
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export PATH

13、运行source .bash_profile使环境变量生效
14、解压Tomcat,并将woniusales.war复制到webapps目录下,启动
Tomcat
15、配置数据库连接信息,重启Tomcat,完成。

猜你喜欢

转载自blog.csdn.net/m0_51456787/article/details/126450471