阿里云镜像仓库的使用:
1.注册登录
https://cr.console.aliyun.com/cn-hangzhou/instances
在镜像工具-镜像加速器中,更改docker的镜像源:可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
cd /etc/docker
touch daemon.json
vim daemon.json
>>{
>> "registry-mirrors": ["https://fiinbkgv.mirror.aliyuncs.com"]
>>}
sudo systemctl daemon-reload
sudo systemctl restart docker
2.进入实例列表创建个人实例(由于资源有限,个人实例只允许创建三个命名空间)
先创建命名空间(实际上是存放各个镜像,为了不与其他用户创建的镜像相冲突,所以设置具有唯一性的命名空间)
然后在命名空间中创建镜像仓库(一个镜像仓库存放同一镜像的不同版本)
3.在本地打包镜像
1)创建一个文件夹(文件名和创建的镜像名一致),保存Dockerfile和jar包
2)在文件夹中创建Dockerfile
#Dockerfile内容:
FROM java:8
VOLUME /tmp
EXPOSE 8080
COPY test.jar test.jar
ENTRYPOINT ["java","-jar","test.jar"]
3)打包sping boot项目为jar包
4)构建镜像,进入文件夹
docker build -t [镜像名] .
#查看镜像
docker images
#构建成功后启动容器
#/root/logs:/logs日志挂载到磁盘
#/root/logs磁盘路径,/logs为应用保存日志的相对路径
docker run --name [容器名] -d -p 8080:8080 -v /root/logs:/logs [镜像名]
#启动完成后可以查看具体情况
#查看日志
docker logs [容器名]
#查看容器启动状态,status为up则启动正常
docker ps -a
4.登录阿里云Docker Registry
docker login --username=aliyun4995877930 registry.cn-hangzhou.aliyuncs.com
passage:输入密码
5.给镜像添加tag
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/space_for_ivy/test_for_tianchi:[镜像版本号]
6.将镜像推到远程仓库
docker push registry.cn-hangzhou.aliyuncs.com/space_for_ivy/test_for_tianchi:[镜像版本号]
7.从远程仓库中拉取镜像部署到本地(如果镜像是私有,需要提前登录阿里云Docker Registry后才能拉取)
docker pull registry.cn-hangzhou.aliyuncs.com/space_for_ivy/test_for_tianchi:[镜像版本号]
8.查看镜像
docker images
9.运行镜像,生成容器
docker run --name [容器名] -d -p [宿主机端口名]:[docker端口名] [镜像名]
10.查看是否成功启动
docker ps -a
11.复制文件到映射目录
docker cp [容器名]:/etc/nginx/nginx.conf /root/nginx/conf
12.停止此容器
docker stop [容器名]
13.删除容器
docker rm [容器名]
14.重新启动镜像,以nginx为例
注意这里配置的是docker容器内nginx容器的挂载路径,之后发布前端项目需要在nginx配置文件里配置该挂载路径
docker run --restart=always -d -p 80:80 --name nginx -v /root/nginx/html:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs:/var/log/nginx nginx
15.查看是否启动成功
docker ps -a
16.添加nginx配置文件
监听的是80端口,把192.168.0.1换成服务器的内网IP(即后端项目访问IP),/api/为后端接口的映射前缀,所以前端访问后端接口时都要加上这个前缀,当匹配到时转发到后端应用。
然后配置前端,根路径即是前端首页,需要注意的是root 的路径是docker容器内nginx容器挂载前端项目的路径,并不是服务器本地挂载的路径。
cd /root/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;
location /api/ {
proxy_pass http://192.168.0.1:8080/;
}
location / {
root /usr/share/nginx/html/test-page;
index index.html index.htm;
}
}
16.停止容器
dcoker stop nginx
17.启动容器
docker start nginx
版权归原作者 hongyinvjianke 所有, 如有侵权,请联系我们删除。