docker学习02 - docker的应用

docker的应用

1.1 docker 安装tomcat
# 如果是未下载的镜像,可以直接使用地址
docker run -d -p 8000:8080 --name mytomcat2 daocloud.io/library/tomcat:8.5.15-jre8
# 如果是已下载的镜像,可以使用镜像名或镜像名:tag
docker run -d -p 8000:8080 --name mytomcat3 镜像的标识 
1.2 docker 安装mysql
# docker 安装mysql,并指定端口和密码
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root daocloud.io/library/mysql:5.7.4
1.3 docker 部署ssm工程
1.3.1 修改ssm工程环境,配置容器中的数据库信息
1.3.2 通过maven 打包成 war包
1.3.3 将打成的war包复制到服务器linux中
1.3.4 将linux中的war包复制到容器内部
docker cp 要复制的文件的绝对路径 容器id:容器内部路径 
1.3.5 测试访问ssm工程
1.4 docker 使用数据卷

每次部署都需要把项目文件放到容器太过麻烦,也可以通过创建数据卷的方式,把容器中某些路径映射到宿主机路径,这就是数据卷

1.4.1 创建数据卷
# 创建数据卷后,默认会放在一一个目录下,/var/lib/docker/volumes/数据卷名称/_data
docker volume create 数据卷名称

# 例子
[root@centOS ~]# docker volume create mytomcat
mytomcat

[root@centOS volumes]# pwd
/var/lib/docker/volumes
[root@centOS volumes]# ls
mytomcat
[root@centOS volumes]#
1.4.2 查看全部数据卷
# 查看所有数据卷信息
docker volume ls

# 例子
[root@centOS volumes]# docker volume ls
DRIVER              VOLUME NAME
local               9922c33342a0d2f435b23ec6191a9ce03531e643db1be6b703f361edf5f3fece
local               my_tomcat_data
local               mytomcat
1.4.3 查看数据卷详情
# 查看数据卷详情,包含存放的路径,创建时间等
docker volume inspect 数据卷名

# 例子
[root@centOS volumes]# docker volume inspect mytomcat
[
    {
        "CreatedAt": "2020-08-26T22:20:20+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/mytomcat/_data",
        "Name": "mytomcat",
        "Options": {},
        "Scope": "local"
    }
]
1.4.4 删除数据卷
# 删除指定数据卷
docker volume rm 数据卷名称

# 例子
[root@centOS volumes]# docker volume rm mytomcat
mytomcat
[root@centOS volumes]# docker volume ls
DRIVER              VOLUME NAME
local               9922c33342a0d2f435b23ec6191a9ce03531e643db1be6b703f361edf5f3fece
local               my_tomcat_data
1.4.5 容器映射数据卷

我们学会了数据卷的增删查,但是并没有个容器关联在一起,应该怎么关联呢?

# 通过数据卷名称映射,如果数据卷不存在,docker 会帮自动创建,会将容器内部自带的文件,存放到数据卷路径中
docker run -d -p 8000:8080 --name tomcat -v 数据卷名称:容器内部的路径 镜像id

# 通过路径映射数据卷,指定一个路径作为数据卷的存放地址,但是这个路径下是空的(不会默认把容器内的文件带出来,需要手动添加)
docker run -d -p 8000:8080 --name tomcat -v 路径(/root/自己创建的文件夹): 容器内部路径 镜像id

# 例如
[root@centOS volumes]# docker run -d -p 8000:8080 --name tomcat -v /usr/local/tomcat/webapps/:/usr/local/tomcat/webapps/
96b7ed0dc6a8a55ea7ce226d5a7ab6207f63396182e61d0c411178d106c08fca

# 然后把 index.html放到 /usr/local/tomcat/webapps 这个路径下,就可以通过http://172.16.195.134:8000/ 知道对应的html文件

1.4.5.1 mysql使用数据卷
# mysql 指定数据卷存放表信息
docker run -d -p 3306:3306 --name my_docker_mysql -v /usr/local/mysql/mysql_docker01/mysql_data_docker01/:/var/lib/mysql -v /usr/local/mysql/mysql_docker01/mysql_config_docker01/:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root aa

-d : --detach,后台运行。
–name : 为你的镜像创建一个别名,该别名用于更好操作。
-p : 映射端口,一般我们会将默认端口进行更改,避免与本机的mysql端口冲突,如果你宿主机有mysql,请更改端口,如 -p 33060:3306。
-e : 环境变量。为mysql的root用户设置密码为123456。
-v : 指定数据卷,意思就是将mysql容器中的/var/lib/mysql(这个是数据库所有数据信息文件)映射到宿主机/data/mysql里面。


# myql 增加用户,授予权限命令
grant all on *.* to 'test'@'%' identified by '1234';

这时一条授予权限命令,当用户不存在时,则会自动创建。
. 前一个*星号代表所有数据库,后一个星号代表所有数据表
‘test"@’% : test是用户名,%为所有IP。
identified by ‘1234’ : 密码设置为1234.


#在容器内部登录mysql
mysql -h 数据ip -u用户名 -p

# 例子
root@a6e28cf62fa4:/usr/local/mysql# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.7.4-m14 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

h : 指定主机IP
-P : 这是指定端口的,如果你设置了自己的端口,记得加上这个参数。
如果没有安装mysql-client(mysql服务器的连接工具),那么就先安装一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值