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=[], 给容器挂载存储卷,挂载到容器的某