- 首先创建一个文件 vim project_dockerfile 保存推出
# 依赖 jdk 11 FROM openjdk:11 # 创建 admin 文件夹 RUN mkdir admin # 将当前文件夹jar_project下的jar包 复制到 容器内 admin文件下 COPY ./jar_project/common_utils-0.0.1-SNAPSHOT.jar /admin COPY ./jar_project/service_base-0.0.1-SNAPSHOT.jar /admin COPY ./jar_project/service-main-0.0.1-SNAPSHOT.jar /admin # 指定该容器的工作区为 /admin WORKDIR /admin # 依次运行jar包 CMD java -jar common_utils-0.0.1-SNAPSHOT.jar CMD java -jar service_base-0.0.1-SNAPSHOT.jar CMD java -jar service-main-0.0.1-SNAPSHOT.jar
- 输入命令
docker build -f ./project_dockerfile -t app .
-f 指定依赖的文件夹是哪个
-t 指定创建的images镜像
.指定镜像构建过程中的上下文环境的目录
-
完成图
-
查看镜像
- 搜索mysql镜像
docker search mysql
- 拉取mysql镜像
docker pull mysql:5.7
- 创建容器,设置端口映射、目录映射
# 在/root目录下创建mysql目录用于存储mysql数据信息 mkdir ~/mysql cd ~/mysql
docker run -id -p 3306:3306 --name=c_mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
- 参数说明:
- -p 3306:3306:将容器的 3306 端口映射到宿主机的 3306 端口。
- -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录
- -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。日志目录
- -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。数据目录
- -e MYSQL_ROOT_PASSWORD=123456初始化 root 用户的密码。
- 进入容器,操作mysql
docker exec –it c_mysql /bin/bash3、部署Nginx
- 搜索nginx镜像
docker search nginx
- 拉取nginx镜像
docker pull nginx
- 创建容器,设置端口映射、目录映射
# 在/root目录下创建nginx目录用于存储nginx数据信息 mkdir ~/nginx cd ~/nginx mkdir conf cd conf # 在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容 vim nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
docker run -id --name=c_nginx -p 80:80 -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/var/log/nginx -v $PWD/html:/usr/share/nginx/html nginx
- 参数说明:
- -p 80:80:将容器的 80端口映射到宿主机的 80 端口。
- -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机当前目录下的 /conf/nginx.conf 挂载到容器的 :/etc/nginx/nginx.conf。配置目录
- -v $PWD/logs:/var/log/nginx:将主机当前目录下的 logs 目录挂载到容器的/var/log/nginx。日志目录
安装Docker Compose
# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。 curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose # 设置文件可执行权限 chmod +x /usr/local/bin/docker-compose # 查看版本信息 docker-compose -version
卸载Docker Compose
# 二进制包方式安装的,删除二进制文件即可 rm /usr/local/bin/docker-compose
使用docker compose编排nginx+springboot项目
- 创建docker-compose目录
mkdir ~/docker-compose cd ~/docker-compose
- 编写 docker-compose.yml 文件
version: '3'
services:
nginx:
image: nginx
ports:
- 80:80
links:
- app
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
app:
image: app
expose:
- "8080"
- 创建./nginx/conf.d目录
mkdir -p ./nginx/conf.d
- 在./nginx/conf.d目录下 编写itheima.conf文件
server {
listen 80;
access_log off;
location / {
proxy_pass http://app:8080;
}
}
- 在~/docker-compose 目录下 使用docker-compose 启动容器
docker-compose up
- 测试访问
http://192.168.149.135/hello



