本文主要是介绍linux 上Docker-compose配置、部署java服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Docker配置部署java服务
- 1、创建新用户
- 1.1、使用 useradd 命令创建新用户
- 1.2、使用 adduser 命令创建新用户
- 1.3用户授权
- 1.3用户组授权
- 2、创建文件
- 2.1、创建文件夹
- 2.2、创建文件
- 3、nginx
- 3.1 docker运行 nginx
- 3.1.1、拉取镜像
- 3.1.2、容器运行
- 3.2 docker-compose运行 nginx
- 3.2.1 运行环境挂载文件配置
- 3.2.2 docker-compose.yml文件编辑
- **附加
- 4、redis
- 4.1 docker运行redis
- 4.1.1、拉取镜像
- 4.1.2、容器运行
- 4.2 docker-compose运行 mysql
- 4.2.1 运行环境挂载文件配置
- 4.2.2 docker-compose.yml文件编辑
1、创建新用户
1.1、使用 useradd 命令创建新用户
在 Linux 系统中,我们可以使用 useradd 命令来创建新用户。打开你的终端,键入下面的命令:
sudo useradd -m 新用户名
这里,-m
选项会为新用户在 /home
目录下创建一个新的家目录,而 新用户名 就是你想要创建的新用户的用户名。
接下来,你可能会希望给新用户设置一个密码,你可以使用 passwd 命令:
sudo passwd 新用户名
然后,根据提示输入新密码两次。
1.2、使用 adduser 命令创建新用户
在某些基于 Debian 的 Linux 发行版中,你可能会找到一个叫做 adduser 的命令。它实际上是 useradd 的一个友好版本,更方便你进行交互式操作。
sudo adduser 新用户名
执行这个命令后,系统会自动引导你完成创建新用户的过程,包括设置密码、填写用户全名、房间号码、工作电话、家庭电话和其他信息(这些额外信息是可选的,如果不需要,可以直接按回车跳过)。
1.3用户授权
为了操作顺利需要给用户授权管理员
sudo vim /etc/sudoers
编辑sudoers文件,找到一下内容,
root ALL=(ALL) ALL
在后面加上以下内容
用户名 ALL=(ALL) NOPASSWD:ALL
1.3用户组授权
用户授权了管理员之后可能还有些权限功能不足的地方,一下以docker举例
例:在执行docker命令的时候依旧权限不足
所有查看用户组
cat /etc/group
找到docker所属的用户组
把已有的用户添加到docker用户组
usermod -G {groupname} {username}
添加成功之后就可以使用docker命令了
2、创建文件
创建部署所需相关文件夹和文件
2.1、创建文件夹
mkdir 文件夹名
2.2、创建文件
touch 文件名.文件类型
3、nginx
3.1 docker运行 nginx
3.1.1、拉取镜像
docker pull nginx:latest
异常:error pulling image configuration: download failed ******
点击处理
3.1.2、容器运行
docker run --name nginx-test -p 20240:80 -d nginx
- –name nginx-test:容器名称。
- -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
- -d nginx: 设置容器在在后台一直运行。
3.2 docker-compose运行 nginx
3.2.1 运行环境挂载文件配置
将正在运行的nginx中的配置文件复制到本机上
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/
# 将容器中的日志文件夹复制到宿主机
docker cp nginx:/var/log/nginx /home/nginx/logs/
3.2.2 docker-compose.yml文件编辑
注意:
挂载点文件路径,和上一步配置的要对应上
version: "3"
services:web:#定义主机名container_name: lrnginx#使用的镜像image: nginx:latest#容器的映射端口ports:- 20240:80#定义挂载点 volumes:- ./html:/usr/share/nginx/html- ./conf/nginx.conf:/etc/nginx/nginx.conf- ./conf.d:/etc/nginx/conf.d- ./logs:/var/log/nginx#docker 重启后,容器自启动restart: always
运行命令
docker-compose up -d
**附加
*进入容器内部查看nginx配置文件
docker exec -it nginx-test bash
*查看容器中nginx配置文件
cat /etc/nginx/nginx.conf
4、redis
4.1 docker运行redis
4.1.1、拉取镜像
docker pull mysql:8.0
4.1.2、容器运行
docker run --name mysql-test -p 20241:3306 -d mysql:8.0
4.2 docker-compose运行 mysql
4.2.1 运行环境挂载文件配置
将正在运行的mysql中的配置文件复制到本机上
# 将容器mysql 文件复制到宿主机
docker cp mysql-test:/etc/mysql /home/lirong/mysql/
容器中mysql文件这样的
├── conf.d
├── my.cnf
└── my.cnf.fallback
将文件复制过来调整一下,调整以后文件夹是这样的
├── conf.d
├── conf
│ └── my.cnf
│ └── my.cnf.fallback
根据个人习惯调整
4.2.2 docker-compose.yml文件编辑
version: '3'
services:mysql:restart: alwaysprivileged: trueimage: mysql:8.0container_name: lrmysqlvolumes:- ./data:/var/lib/mysql- ./conf.d:/etc/mysql/conf.d- ./conf/my.cnf:/etc/mysql/my.cnf- ./logs:/var/log/mysqlcommand:--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--explicit_defaults_for_timestamp=trueenvironment:MYSQL_ROOT_PASSWORD: "***"MYSQL_USER: "**"MYSQL_PASSWORD: "**"MYSQL_INITDB_SKIP_TZINFO: "Asia/Shanghai"ports:- 20241:3306network_mode: "bridge"
运行命令
docker-compose up -d
这篇关于linux 上Docker-compose配置、部署java服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!