docker使⽤⽅法
⼀:使⽤sed命令监控⽇志直到关键词出现后退出
连接远程应⽤服务器并执⾏docker logs命令,通过sed命令捕获关键词(通过-e的⽅式捕获多个关键词),关键词后接 q,代表捕获到后退出当前命令
ssh $R EMOTE_U SER_N AME@$SER VER_IP "do c k er lo gs -f
-e '/JVM r unning fo r/ q' -e
${DOCKER_SER VICE_N AME} | sed JVM running fodocker打包镜像
'/APPLICATION FAILED TO STAR T/ q'"
直接查看⽇志tail -f xxx.log | sed -e '/JVM running for/ q' -e '/APPLICATION FAILED TO START/ q'
docker logs -f ${DOCKER_SERVICE_NAME} | sed -e '/JVM running for/ q' -e '/APPLICATION FAILED TO START/ q' 可以修改为timeout 600s docker logs -f ${DOCKER_SERVICE_NAME} | sed -e '/JVM running for/ q' -e '/APPLICATION FAILED TO START/ q'。代表在600s中没有捕获到关键词⼀样的退出命令,就是超时操作
捕获到 JVM running for后,直接退出。
⼆:复制docker镜像
docker tag origin_image_id target_image_repository:tag
例如,当前需要复制⼀个镜像。
docker tag 源镜像idxxxxxx 仓库地址/⽂件夹/名字:tag
执⾏后,可以通过docker images命令可以看到,多了⼀个镜像,并且tag为123。
三:docker登录远程镜像仓库
直接使⽤docker login 域名,输⼊⽤户名和密码即可。登录成功后,会在服务器/root/.docker/config.json⽂件中新增⼀个域名认证信息,所以也可以直接将该认证信息添加到config.json⽂件中,也就可以直接登录成功。登录成功后,服务器与镜像仓库才会有建⽴连接,才能进⾏push pull操作
四:推送镜像到镜像仓库
接第⼆个。直接使⽤docker push 仓库地址/⽂件夹/名字:tag,就会推送到相应的仓库/⽂件夹,并且有tag。例如 docker push hub-
dev111111/library/java-service,该镜像就会被推送到hub-dev111111这个仓库。
五:拉取镜像仓库中的镜像到本地
同样,使⽤docke pull hub-dev111111/library/java-service:123,就会送hub-dev111111这个仓库的library⽂件夹下去拉取tag为123的java-service镜像
六:删除id相同的镜像
docker rmi hub-dev111111/library/java-service:123,直接使⽤名称:tag的⽅式删除
七:启动docker
docker run -d --net=host --name 容器名 镜像名/镜像id
--net=host作⽤为容器与宿主机通信,--name为给容器命名
⼋:批量重启docker
最近遇到得到公司会重启所有服务器的通知,这会导致当前服务器上运⾏的docker容器会被kill掉。被kill掉了总不可能docker ps查询到所有挂起状态的容器,然后挨着start吧,所以想了个批量重启的办法。
在重启服务器之前:⾸先查询当前运⾏着的容器并将容器id输出到txt⽂件,docker ps | awk '{print $1}'&或者docker ps | awk '{print $NF}' > id.txt,将容器id或容器名称输出到txt。$1代表通过awk分割后输出第⼀个,$NF代表输出最后⼀个
在重启服务器之后:docker start $( | while read line; do echo $line; done),就可以批量启动容器了。
while read line,读取txt中的⾏,循环输出。
$() 括号中是存放命令,该命令所得到的东西可以赋予其他变量。也可以使⽤ ``代替。例如docker start  ` | while read line; do echo $line; done`
${} 括号中存放的是变量

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。