docker学习笔记
docker部署摘要
docker使用场景,隔离环境部署项目,各个项目之间无关系,可移植性强。docker有二个模块,
第一个是images模块,是模拟各种系统的环境操作;第二个是容器container,container是建立在images之上的,没有镜像提供的环境支持,就无法使用容器,
使用docker部署项目小提示
MySQL镜像
如果部署的项目是前后端分离的项目,后端需要使用到数据库,就需要拉取MySQL镜像,并且要进入MySQL镜像执行远程登录操作,然后执行项目的sql脚本文件。
后端java部署
打包后端项目,构建后端镜像,运行后端容器,在运行后端容器时,需要指定数据库的IP地址与端口号,数据库用户名,redis的IP地址,每一个容器的IP地址都是不一样的默认的容器网络模式是桥接模式,其中,分配IP的方式是HTPC动态获取,且自增的为每个容器分配IP地址,默认的IP地址为172.17.0.1默认的网关是172.171.0.1,
nginx镜像
nginx的端口监听是nginx容器内运行的端口号,服务器IP地址是物理机的IP地址,root的前端资源路径通过资源挂载识别,端口转发是转发docker应用的容器内的IP地址,所有配置文件通过挂载的方式加载,部署成功后,通过物理机的IP地址加nginx容器映射的端口号访问项目
docker images操作
学习docket部署操作,需先安装doker
1.docker安装命令
参考菜鸟教程下载docker
常用命令介绍
docker rmi ——删除镜像
container常用命令介绍
docker run ——运行容器;
–privileged=true——设置容器运行已root用户权限执行命令
–restart always——如果docker重启,则该容器会在docker重启之后也重启运行
-d——后台运行;\ ——换行输入 ;
–name——给运行的容器命名;
-p——端口映射(物理机端口:容器内部端口)可以绑定端口;
-e——配置程序启动的参数
-v——数据卷挂载(物理机目录:容器内部目录)可以设置多个目前挂载
images:tag——镜像名:标签(如果镜像不存在,则去镜像仓库拉取镜像,如果没有设置标签,则默认拉取最新的版本)
docker run -d \
--name nginx --restart always \
-p 8081:80 -p 443:443 \
-e "TZ=Asia/Shanghai" \
-v /home/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf.d:/etc/nginx/conf.d \
-v /home/nginx/logs:/var/log/nginx \
-v /home/nginx/cert:/etc/nginx/cert \
-v /home/nginx/html:/usr/share/nginx/html \
nginx:alpine
example: 运行一个MySQL容器
MYSQL_ROOT_PASSWORD——设置root用户的初始密码
docker run -v /home/mysql/:/var/lib/mysql \
-v /home/mysql/conf:/etc/mysql/conf.d \
-p 8082:3306 -e MYSQL_ROOT_PASSWORD=liangyuafng_123 \
--privileged=true --restart=always --name mariadb -id mysql:5.6
运行一个javaSpringboot项目
ROM java:8
ARG JAR_FILE=./*.jar
COPY ${JAR_FILE} app.jar
ENV TZ=Asia/Shanghai
ENTRYPOINT ["java","-jar","/app.jar"]
构建镜像: 点代表当前目录
docker build -t eladmin .
创建容器
docker run -d \
--name eladmin-test --restart always \
-p 9505:8000 \
-e "TZ=Asia/Shanghai" \
-e DB_HOST=172.17.0.2 \
-e DB_PORT=3306 \
-e DB_PWD=root \
-e REDIS_HOST=172.17.0.3 \
-v /home/data/:/home/eladmin/ \
eladmin
docker 常用命令
查看容器的所有配置
docker inspect 容器id
查看容器的ip
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器id|名称
查看所有的容器IP地址
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)
1914

被折叠的 条评论
为什么被折叠?



