docker入门-安装-配置javaweb应用

尝试使用docker,配置java。网上关于docker的描述教程很多,本次主要使用docker配置一个简单的javaweb应用。

1. 安装

在ubuntu服务器端下载。官方安装方法阿里云安装方法

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce


#可选:本地电脑上使用非root用户访问docker:
sudo groupadd docker
sudo gpasswd -a ${USER} docker
#注销用户一下
sudo service docker restart

ps:如果出现:sudo unable to resolve host,则把命令中的所有sudo去除,无伤大雅。

2. 阿里云镜像加速

如果使用docker官方的资源链接将会非常非常慢,建议国内使用阿里云镜像加速。阿里云官方指导方法

如果不小心添加了docker官方的软件源,可以到目录:/etc/apt/sources.list.d/下进行注释,或添加软件源。
注释第一和第二条,剩下有aliyun的

3. 本地镜像制作

#拉取tomcat和mysql镜像
docker pull tomcat
docker pull mysql


#在war包目录下编写Dockerfile内容
from tomcat
MAINTAINER tomlao 1026022953@qq.com
COPY dockertest.war /usr/local/tomcat/webapps
#from tomcat从tomcat镜像构建新的镜像
#tomlao是你的名字,1026022953@qq.com是你的邮箱
#COPY从当前目录下拷贝war包到镜像中的tomcat的webapps目录,一般由docker自动完成,不要手动干预


#建立镜像且命名为dockertest,在当前目录下有Dockerfile和war包
docker build -t dockertest .


#创建mysql容器(相当于镜像实例化)
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mymysql mysql
#-d后台运行
#-p 3306:3306端口映射,端口需要使用前关闭本地的mysql,或可以自己设置探索一下其他端口。
 有这个非docker容器(本地电脑)也可以访问容器内的数据库。
#-e MYSQL_ROOT_PASSWORD=123456连接数据库密码
#--name mymysql别名


#为数据库添加内容
docker exec -it mymysql bash
#进入数据库容器的命令行模式
mysql -uroot -p123456
#创建数据库,自己写自己的
create database xxx;
use database xxx;


#运行javaweb容器
docker run -it -p 8080:8080 --link mymysql:db dockertest
#-i表示以“交互模式”运行容器
#-t:表示容器启动后会进入其命令行
#-p端口映射
#--link mymysql:db其中mymysql是mysql容器的别名,db是别名,
 web程序访问mysq数据可以通过其访问,例如jdbc:mysql://db:3306/dockertest?user=root&password=123456&characterEncoding=utf-8
#dockertest为web项目的镜像


#运行后提交新的镜像,保存其内容,并命名
docker commit xxxdockerID dockername


#

值得注意的截图
看好数据库的链接,是db,在容器中有映射

war包和Dockerfile的位置

这里我偷懒,直接在idea输出的war包目录下做Dockerfile,生成镜像。这样我每次修改了代码,需要先build一下war包,然后再docker build -t dockertest . 生成镜像。

其他docker常用命令

#列出所有镜像
docker images

#参考正在运行的容器
docker ps

#停止容器
docker kill xxx
docker stop xxx

#停止所有容器
docker stop $(docker ps -a -q)

#删除所有container
docker rm $(docker ps -a -q)

#删除所有镜像
docker rmi $(docker images -q)

#查看docker占用
docker system df

#用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。
docker system prune

#删除所有关闭的容器
docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm

#删除所有dangling镜像(即无tag的镜像):
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

#删除所有dangling数据卷(即无用的volume):
docker volume rm $(docker volume ls -qf dangling=true)

#更多清理见下面的链接

参考文章

第一个docker化的Java应用

通过Docker搭建Mysql容器+Tomcat容器连接环境

Docker删除容器与镜像

Docker 安装 MySQL

如何清理Docker占用的磁盘空间?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值