centos7安装docker 生成镜像 上传到阿里云 镜像仓库 部署web项目

docker介绍

docker是一种linux容器技术。容器有效的将由单个操作系统挂管理的资源划分到孤立的组中,以便更好的在组之间平衡有冲突的资源使用需求。可简单理解为一种沙盒
。每个容器内运行一个应用,不同的容器之间相互隔离,容器之间也可以建立通信机制。容器的创建和停止都十分快速,资源需求远远低于虚拟机。 好处
能高效地构建应用。 对于运维开发来说,
能快速的交付和部署 高效的资源利用 轻松的迁移扩展

“虚拟机是在一台物理机器上,利用虚拟化技术,虚拟出来多个操作系统,每个操作系统之间是隔离的。Docker是开源的应用容器引擎,依然需要先在电脑上安装操作系统,然后安装Docker容器的管理器,才可以。虚拟机是在硬件级别进行虚拟化,而Docker是在操作系统的层面虚拟化;虚拟机是通过模拟硬件搭建操作系统”

与虚拟机的比较

centos7安装docker 生成镜像 上传到阿里云 镜像仓库 部署web项目_第1张图片

docker与虚拟化

centos7安装docker 生成镜像 上传到阿里云 镜像仓库 部署web项目_第2张图片

docker与虚拟化

镜像(Image) 容器(Container) 仓库(Repository) 镜像:类似虚拟机镜像
容器:容器是镜像的一个运行实例,不同的是它带有额外的可写层。容器从镜像启动的时候,docker会在镜像的最上一层创建一个可写层,镜像本身是只读的,保持不变。
仓库:仓库是集中存放镜像的地方。每个服务器上可以有多个仓库。 仓库又分为公有仓库(DockerHub、 dockerpool)和私有仓库
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200322083928394.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dhbnlvbmdtaW5n,size_16,color_FFFFFF,t_70

容器、仓库、镜像运行关系图:

centos7安装docker 生成镜像 上传到阿里云 镜像仓库 部署web项目_第3张图片

docker安装

一 环境准备

1、虚拟机or物理机
2、centos7系统(稳定,对docker支持友好)

二 安装过程

step1:使用yum命令进行安装

yum install -y docker

备注:-y 表示不询问 使用默认配置进行安装,等待提示 完毕!
step2:查看是否安装成功

yum list installed | grep docker

备注:命令为 查看yum安装完成文件列表 并 筛选docker安装信息 如下

step3:启动docker服务

systemctl start docker

step4:查看是否启动成功

systemctl status docker

操作时如有问题可关注公众号回复docker联系作者
centos7安装docker 生成镜像 上传到阿里云 镜像仓库 部署web项目_第4张图片

centos7安装docker 生成镜像 上传到阿里云 镜像仓库 部署web项目_第5张图片

如果没有出现 active(running)说明启动失败
解决方法,修改docker文件,具体命令:vi /etc/sysconfig/docker,在–selinux-enabled后面添加=false。如下图所示:
centos7安装docker 生成镜像 上传到阿里云 镜像仓库 部署web项目_第6张图片
再次执行

systemctl start docker

systemctl status docker

Step5:查出docker版本

docker version

Step6:测试

docker run hello-world
三 配置镜像加速

A.打开阿里云网址https://cr.console.aliyun.com
B.使用支付宝或淘宝账号登录
C.搜索容器镜像服务
在这里插入图片描述D.复制红色区域内容

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://替换你的地址.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
四 docker命令

①  docker images -q 只显示镜像id
②  docker image -a 列出本地所有镜像(含中间映像层)
③ docker images --digests 显示镜像的摘要信息
④ docker images --no-trunc 显示镜像完整信息
⑤ docker search 镜像名 搜索镜像
⑥ docker pull 镜像名 下载镜像
⑦ docker rmi 镜像id 删除镜像
⑧  docker ps 列出正在运行 的 容器
⑨  docker run -d -p 8080:8080 --name mycat tomcat 创建容器运行示例
⑩ docker start 容器ID或容器名 启动容器
⑪ docker restart容器ID或容器名 重启容器
⑫ docker stop 容器ID或容器名 停止容器
⑬ docker kill 容器ID或容器名 强制停止容器
⑭ docker rm 容器ID 删除已停止的容器

五.使用docker安装mysql

A.通过docker search mysql搜索镜像
B.下载第一个镜像,通过docker pull docker.io/mysql命令
C.通过docker images查看镜像
D.创建容器运行docker run -d -p 3306:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=root docker.io/mysql:latest
E.进入容器命令:docker exec -it 容器id /bin/sh F.mysql -uroot -proot
G.授权用户给第三方访问 H.create user ‘java01’ identified with
mysql_native_password by ‘accp’; I.grant all privileges on . to ‘java01’;
J.使用sqlyog连接mysql

六.安装tomcat

A.通过docker pull tomcat 拉取镜像
B.创建容器运行 docker run -d -p 8080:8080 --name
mytomcat tomcat:latest
C.测试访问ip:8080(记得关闭防火墙)
D.进入容器docker exec -it mytomcat bash ,在这里用到了上面提到的容器别名mytomcat
E.部署项目到tomcat docker cp demo.war mytomcat:/usr/local/tomcat/webapps
F.重启窗口 docker restart mytomcat

七.安装nginx

A.通过docker pull nginx 拉取镜像
B.创建挂载目录 mkdir -p /data/nginx/{conf,conf.d,html,log}
C.创建容器运行 docker run -it -d -p 8085:80 --name nginx2 nginx
D.进入容器docker exec -it nginx2 /bin/bash
E.从容器复制文件到宿主机 docker cp 容器id:/etc/nginx/nginx.conf 虚拟机目录
D.编辑nginx.conf配置文件加入以下内容
server{
listen 80;
server_name 192.168.10.65; #你的serverName
root /usr/share/nginx/html;
index index.html;
}
E.再次创建容器运行(把容器文件挂载到宿主机上面)
docker run
–name my_nginx
-d -p 80:80
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-v /data/nginx/log:/var/log/nginx
-v /data/nginx/html:/usr/share/nginx/html
nginx
F. 准备素材在/data/nginx/html创建一个html文件名为test.html
G.测试访问192.168.10.65:80/test…html

八 安装rabbitmq

A.下载 docker pull rabbitmq:3-management
B.启动docker run -d --hostname> my-rabbit --name rabbit -p 15672:15672 -p 5672:5672
rabbitmq:3-management
C).访问 ip:15672

九.生成镜像

1.创建一个centos镜像
通过命令下载dockerhub上的官方镜像

docker pull centos

2.创建一个基于centos镜像的容器
通过命令docker images查看服务器上已有的镜像

docker run -dit -p 4000:8080 centos镜像名或id

创建一个基于centos镜像的容器在后台运行并将服务器的4000端口映射到容器中的8080端口
3.将jdk,tomcat的安装包和web项目上传至镜像中

docker cp /usr/local/jdk安装包 容器名:容器地址
docker cp /usr/local/tomcat安装包 容器名:容器地址
docker cp /usr/local/web项目 容器名:容器地址1

4.进入容器并操作

docker attach 容器名或id

进入容器中
安装jdk和tomcat的步骤和在linux中安装步骤一致,你可以把容器当成一个linux虚拟机, 之后启动tomcat服务
5.验证
在浏览器上输入http://服务器ip:4000,如果出现tomcat页面则成功了
6.将容器打包成镜像
docker commit -a “runoob.com” -m “my apache” 容器名称或id 打包的镜像名称:标签
OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。

docker commit -a "ganyongming" -m "mytomcat" eda39a88cdcb
十.上传至你的阿里云

(1)命令登录到阿里云的doker仓库(需要提前创建),–username为阿里云的用户名

a. docker login --username=liuzhijun1991 registry.cn-hangzhou.aliyuncs.com`
b. 输入阿里云密码

(2)为本地镜像添加tag 语法 docker tag 镜像id 仓库地址:标签

a.docker tag bc244747a754 registry.cn-hangzhou.aliyuncs.com/docker_java01/aliyun:latest

(3).push到docker仓库 语法 docker push 仓库地址:标签

docker push registry.cn-hangzhou.aliyuncs.com/docker_java01/aliyun:latest
十一.使用下载生成好的镜像
docker pull registry.cn-hangzhou.aliyuncs.com/docker_java01/aliyun

你可能感兴趣的:(java)