Docker从安装到部署JAVA应用

Docker安装

 1.docker -v
2. yum search docker
3. yum install -y docker
4. systemctl start docker
5. docker version

配置加速器

vi /etc/docker/daemon.json

默认为{},修改为如下:

1. {
2.     "registry-mirrors": [
3.         "https://registry.docker-cn.com"
4.     ]
5. }

安装portainer

docker run --name Manage-Center  --restart=always -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
admin/admin612

安装nginx

1. yum install nginx -y
2. cd /etc/nginx/conf.d
3. mv default.conf default.conf.disabled

安装Mysql

1、docker search mysql
2、docker pull mysql:5.6
3、docker images
4、docker run --name netgate-mysql  --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin612 -d mysql:5.6
5、优化:docker cp /home/test/dockerApp/my.cnf f7ffe81c8c33:/etc/mysql/mysql.conf.d/mysqld.cnf
6、授权解决配置文件不生效的问题:chmod -R 755 /etc/mysql/mysql.conf.d/
7、查看连接数SQL:SHOW FULL PROCESSLIST;

build服务镜像

cd /home/test/dockerApp

将netgate-server-1.1.8.jar放入此目录,并在此目录创建dockerfile,内容如下:

FROM openjdk:8
MAINTAINER NETGATE
LABEL app="netgate-server" version="1.1.8" by="netgate"
COPY ./netgate-server-1.1.8.jar netgate-server.jar
CMD java -jar netgate-server.jar

执行命令:docker build -t netgate-server .

执行时间比较长,中间有卡住的现象,前后大概花费15分钟

第二次build特别快,大概一秒钟

启动服务

docker run --name netgate-server --restart=always -p 8001:8001 -d netgate-server
docker run --name netgate-server-2 --restart=always -p 8001:8001 --rm -e JAVA_OPTS='-Xms2048m -Xmx3072m' -d netgate-server

更新服务

docker cp /home/test/dockerApp/netgate-server-1.1.9.jar 91fea070e75f:/netgate-server.jar
docker restart 91fea070e75f

服务时间同步

1. 未启动的容器

更改dockerfile文件

FROM openjdk:8
MAINTAINER NETGATE
LABEL app="pay" version="0.0.1" by="yangrui"
COPY ./pay-server-0.0.1-SNAPSHOT.jar pay.jar
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
CMD java -jar pay.jar

2. 已启动的容器

docker cp /etc/localtime 91fea070e75f:/etc/
docker exec -it 91fea070e75f bash
echo "Asia/Shanghai" > /etc/timezone
cat /etc/timezone

数据库容器时间同步

docker cp /etc/localtime f7ffe81c8c33:/etc/
docker exec -it f7ffe81c8c33 bash
echo "Asia/Shanghai" > /etc/timezone
cat /etc/timezone

配置静态文件上传路径

路劲:/home/version/

图片测试:docker cp /home/test/dockerApp/test.png 91fea070e75f:/home/version/test.png

清理日志文件

不管用。。。。最后还是换了一个容器

cat /dev/null > *-json.log
docker logs -f -t --since="2017-05-31" --tail=10 91fea070e75f
docker logs -f 91fea070e75f
cat /dev/null >/var/lib/docker/containers/91fea070e75f/91fea070e75f.log-json.log

Docker容器内和系统时间不一致

docker cp /usr/share/zoneinfo/Asia/Shanghai 容器名:/etc/localtime

Docker查看容器日志

1.查看实时日志

Ssh连接服务器,输入docker ps复制想要获得日志的容器id

 

输入

docker logs -t -f --tail 1000 ca92a4ecd699

1000指的是获取最近的1000条日志。然后日志就会实时更新

 

2.查看历史日志

查看容器31ea99694429从2018年6月21日后的最新1000000  条log信息并输出到/home/test/test.txt。

docker logs -t --since="2018-06-21T9:40:00" --tail 1000000  31ea99694429 > /home/test/test.txt

3.Docker常用

-d, --detach=false, 指定容器运行于前台还是后台,默认为false

-i, --interactive=false, 打开STDIN,用于控制台交互

-t, --tty=false, 分配tty设备,该可以支持终端登录,默认为false

-u, --user="", 指定容器的用户

-a, --attach=[], 登录容器(必须是以docker run -d启动的容器)

-w, --workdir="", 指定容器的工作目录

-c, --cpu-shares=0, 设置容器CPU权重,在CPU共享场景使用

-e, --env=[], 指定环境变量,容器中可以使用该环境变量

-m, --memory="", 指定容器的内存上限

-P, --publish-all=false, 指定容器暴露的端口

-p, --publish=[], 指定容器暴露的端口

-h, --hostname="", 指定容器的主机名

-v, --volume=[], 给容器挂载存储卷,挂载到容器的某

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

杭州架构师

你的鼓励你创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值