Docker配置基础JavaWeb环境

0.Docker基础命令
-d : 后台运行容器
-it : 进入容器交互界面
-v : 宿主机目录挂载到容器目录。宿主机目录如果不存在,则会自动生成。格式:-v <宿主机目录>:<容器目录>
-a : -all
--restart=always : Docker 重启,容器自动启动。
ctrl+d : 退出容器(exit有时候无法退出)
  • 启动docker服务
sudo service docker start
  • 启动所有docker容器
sudo docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
  • 查看容器信息

    docker inspect 容器ID
    
  • 查看默认的docker存储路径

docker info |grep 'Docker Root Dir'
WARNING: No swap limit support
Docker Root Dir: /var/lib/docker
  • 停止所有docker容器
sudo docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
  • 停止docker服务
sudo service docker stop
cd /var/lib
  • 打包docker目录
sudo tar -czvf /usr/docker.tar.gz docker/
cd /usr/
sudo tar -xzvf docker.tar.gz
  • 修改docker默认的存储位置
sudo vim /etc/docker/daemon.json
{
    "graph": "/home/server/docker"
}
  • 查看容器
docker ps 查看运行的容器
docker ps -a -s 查看所有的容器并新增一列size(容器占得大小)
1.安装docker

见Centos安装Docker.md文档

2.安装Mysql
# 加载mysql
sudo docker load < /home/<docker>/mysql5.7.19.tar.gz
# 创建数据卷
sudo docker volume create --name v_mysql
# mysql:latest , 启动mysql(root@localhost无权限登录)
# docker pull mysql
sudo docker run -d --name=mysql --restart always -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -v v_mysql:/var/lib/mysql mysql:latest

# 增加用户,但是该用户没有创建数据库的权限
# -e MYSQL_USER=testdba -e MYSQL_PASSWORD=testddba
# 配置好my.cnf挂载上去

# mysql:5.7.19 , 启动mysql(root@localhost无权限登录)
# docker pull mysql:5.7.19
# sudo docker run -d --name=mysql5.7.19 --restart always -p 3307:3306 -e MYSQL_ROOT_PASSWORD=<password> -v v_mysql:/var/lib/mysql mysql:5.7.19

# 进入Mysql容器
sudo docker ps -a 
sudo docker exec -it 35d59103b53e bash
# 安装vim命令
# apt-get update
# apt-get install -y vim

# 修改配置文件
# vim /etc/mysql/my.cnf
# [mysqld]
# skip-grant-tables
# 重启
# docker restart mysql

#创建用户并授予网络权限
MariaDB[(none)]>use mysql;
MariaDB[(mysql)]>grant all privileges on *.* to username@'%' identified by 'password';
#创建用户并授予网络权限并且可以授权
MariaDB[(mysql)]>grant all privileges on *.* to username@'hostname' identified by 'password' with grant option;
MariaDB[(mysql)]>flush privileges;



# 先进入mysql容器,docker exec -it 35d59103b53e bash
# 修改密码的命令
# mysql -uroot -p
# 数据映射在v1上
# mysql> select Host,User,plugin,authentication_string from mysql.user;
# mysql> update mysql.user set authentication_string='123456' where user='root';
# 默认密码永久过期
# mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
# mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# mysql> flush privileges;
# 去掉配置文件免密登录,并重启
# vim /etc/mysql/my.cnf
# [mysqld]
# skip-grant-tables
# 重启
# docker restart mysql

#docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

#-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。

#-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf 
#-v /home/mysql/logs:/logs 
#-v /home/mysql/data/mysql:/var/lib/mysql
3.安装JDK
# 加载镜像
docker load < /home/docker/java.tar.gz
# 启动jdk
docker run -it -d --name jdk java bash


 docker search jdk 
 docker pull primetoninc/jdk 
 
 docker pull majiajue/jdk1.8
4.安装Nginx
# 加载镜像
docker load < /home/docker/nginx.tar.gz

# 方式一 : 将配置好的nginx.conf挂载到容器中
docker run --name nginx -p 80:80 -p 443:443 -v /home/docker/docker-nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/docker/docker-nginx/log:/var/log/nginx -v /home/docker/docker-nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -d nginx

# 方式二 : 启动nginx并手动配置
docker run -it -d --name nginx nginx
# 进入nginx容器
docker exec -it nginx bash
# 安装vim命令
# apt-get update
# apt-get install -y vim
vim /etc/nginx/nginx.conf
# 重启nginx
docker restart nginx
5.Tomcat
  • 制作Tomcat 8镜像

    docker search tomcat8
    docker pull ashince/tomcat8
    docker save ashince/tomcat8 > /Users/wangfugui/Downloads/tomcat8.tar.gz
    
  • 安装Tomcat

# 加载镜像
sudo docker load < /home/<adam>/tomcat8.tar.gz

sudo docker images
sudo docker tag ashince/tomcat8 tomcat

# 路径区分大小写,Mac上需要在【Preferences】-【Resources】-【File sharing】添加/Users/wangfugui/Downloads/wr挂载权限
# 应用配置文件数据库注意:tomcat容器中端口使用mysql容器内部IP和端口,而不是宿主机和localhost
sudo docker run -d --name tomcat -p 8080:8080 -v /home/<lywei1>/wr:/usr/local/tomcat/webapps/ tomcat

# 进入tomcat容器
docker exec -it tomcat bash
5.部署步骤
  • 安装Docker

  • 上传文件

    ssh root@<ip>
    mkdir /opt/software/webapps
    scp /Users/wangfugui/Downloads/dev/docker/mysql5.7.19.tar.gz root@<ip>:/opt/software 
    scp /Users/wangfugui/Downloads/dev/docker/tomcat8.tar.gz root@<ip>:/opt/software 
    scp /Users/wangfugui/Downloads/dev/docker/ROOT.war root@<ip>:/opt/software/webapps
    scp /Users/wangfugui/Downloads/dev/docker/wr.sql root@<ip>:/opt/software
    
  • CentOS防火墙

    # systemctl stop firewalld
    sudo firewall-cmd --zone=public --add-port=3307/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent
    sudo firewall-cmd --reload
    sudo systemctl restart docker
    
  • 安装Mysql容器

    # 自定义网段
    sudo docker network create --subnet=172.17.0.0/16 net1
    # Mysql
    sudo docker load < /opt/software/mysql5.7.19.tar.gz
    sudo docker volume create --name v_mysql
    sudo docker run -d --name=mysql5.7.19 --restart always -p 3307:3306 -e MYSQL_ROOT_PASSWORD=<password> -e MYSQL_USER=cup_dba -e MYSQL_PASSWORD=<password>  -v v_mysql:/var/lib/mysql --net=net1 --ip 172.17.0.3 mysql:5.7.19 
    
  • 导入数据

    sudo docker exec -it mysql5.7.19 bash
    # cup_dba用户需要授权
    mysql -uroot -p
    >create database wr default character set utf8mb4 collate utf8mb4_unicode_ci;
    # 客户端用户没权限,重启一下就好了?
    # 执行sql
    
  • Tomcat

    sudo docker load < /opt/software/tomcat8.tar.gz
    sudo docker tag ashince/tomcat8 tomcat
    sudo docker rmi ashince/tomcat8
    sudo docker run -d --name tomcat --restart always -p 80:8080 -v /opt/software/webapps/:/usr/local/tomcat/webapps/ --net=net1 --ip 172.17.0.8 tomcat
    
    
    sudo docker run -d --name tomcat --restart always -p 80:8080 -v /home/<adam>/wr/:/usr/local/tomcat/webapps/ tomcat
    
    # 查看日志
    # docker exec -it tomcat bash
    # cd logs
    # curl http://172.17.0.8:8080
    
  • 访问

    curl http://<ip>:8080
    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上富贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值