dockerfile启动容器服务(docker文件存放路径, 获取容器启动命令操作)
类别:服务器 浏览量:1835
时间:2022-01-18 01:18:21 dockerfile启动容器服务
docker文件存放路径, 获取容器启动命令操作容器早已创建好,如何得知它的启动参数(数据挂载到哪)
#假设通过如下命令启动了一个容器 docker run -d --name mysql\ -p 3306:3306\ -e MYSQL_ROOT_PASSWORD=123456\ --restart=always\ mysql:5.5 --character-set-server=utf8 #如何通过容器名得知启动参数 [root@jenkins ~]# docker inspect mysql_cdh [ { "Id": "fbc3fba81b57bc5b5871746098b5f1f7ef0ed7716a786584a5effbb88ba156e6", "Created": "2019-09-25T01:43:37.720505875Z", "Path": "docker-entrypoint.sh", "Args": [ "--character-set-server=utf8" ], "HostConfig": { "Binds": [ "mysql-data:/var/lib/mysql" ], "ContainerIDFile": "", "LogConfig": { "Type": "json-file", "Config": {} }, "NetworkMode": "default", "PortBindings": { "3306/tcp": [{ "HostIp": "", "HostPort": "3306"} ] }, "RestartPolicy": { "Name": "always", "MaximumRetryCount": 0 }, "Mounts": [ { "Type": "volume", "Name": "mysql-data", "Source": "/var/lib/docker/volumes/mysql-data/_data", "Destination": "/var/lib/mysql", "Driver": "local", "Mode": "z", "RW": true, "Propagation": "" } ],
1, 镜像层:文件存放路径
[root@master ~]# docker image inspect nginx |tail -n 22 "GraphDriver": { "Data": { "LowerDir": "/var/lib/docker/overlay2/bf20cf788cc053f00ff1467525d50e19bd1cf07a2167f72511bdfcb28918a472/diff:/var/lib/docker/overlay2/317d80bb7ae58ed288be9ebd84aeb5b4b3a1c06f3211f5d1f32d89b629d1876e/diff", "MergedDir": "/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/merged", "UpperDir": "/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/diff", "WorkDir": "/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/work" }, "Name": "overlay2" },
2, 容器层:文件存放路径
#1, 启动容器 [root@master ~]# docker run -d --name nginx2 nginx a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8 #2, 获取容器id [root@master ~]# docker inspect nginx2 | grep -i id [root@master ~]# docker inspect nginx2 | grep -i id "Id": "a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8", "Pid": 2069, "ExecIDs": null, "ContainerIDFile": "", #查看容器临时文件--每次创建时随机生成的文件(容器层) [root@master ~]# docker inspect nginx2 | grep -i path "Path": "nginx", "ResolvConfPath": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/resolv.conf", "HostnamePath": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/hostname", "HostsPath": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/hosts", "LogPath": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8-json.log", #通过容器id, 查找容器数据存放目录: /var/lib/docker/overlay2/容器id ###### #对比上面的“镜像层:文件存放路径”,可以看到 :容器通过LowerDir 挂载的方式,映射了镜像层的文件 ###### [root@master ~]# docker inspect nginx2 | grep -i dir "LowerDir": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b-init/diff:/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/diff:/var/lib/docker/overlay2/bf20cf788cc053f00ff1467525d50e19bd1cf07a2167f72511bdfcb28918a472/diff:/var/lib/docker/overlay2/317d80bb7ae58ed288be9ebd84aeb5b4b3a1c06f3211f5d1f32d89b629d1876e/diff", "MergedDir": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b/merged", "UpperDir": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b/diff", "WorkDir": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b/work"
后天修改容器端口
通过容器层文件,找到配置文件hostconfig.json,修改容器映射的端口
[root@docker d93185e3a0....2e544ccfa]# pwd /var/lib/docker/containers/d93185e3a0....2e544ccfa [root@docker d93185e3a0....2e544ccfa]# cat hostconfig.json {"Binds":["/dockersuperset:/home/superset"],"ContainerIDFile":"", "LogConfig":{"Type":"json-file","Config":{}},"NetworkMode":"default", "PortBindings":{"8088/tcp":[{"HostIp":"","HostPort":"8099"}]}......
3, 进入镜容器文件存储目录, 修改配置文件
# 进入镜容器文件存储目录, 修改配置文件 [root@master ~]# cd /var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls diff link lower merged work [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls diff/run/ nginx.pid [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls diff/var/cache/nginx/ client_temp fastcgi_temp proxy_temp scgi_temp uwsgi_temp [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls merged/ bin/ dev/ etc/ lib/ media/ opt/ root/ sbin/ sys/ usr/ boot/ .dockerenv home/ lib64/ mnt/ proc/ run/ srv/ tmp/ var/ [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls merged/etc/nginx/ conf.d fastcgi_params koi-utf koi-win mime.types modules nginx.conf scgi_params uwsgi_params win-utf [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# head merged/etc/nginx/nginx.conf user nginx; worker_processes 1; #在此处修改配置文件,把user nginx; worker_process 1; 这两行的分号去掉,看容器里面的配置是否更改 [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# head merged/etc/nginx/nginx.conf -n 3 user nginx worker_processes 1 #登陆容器,查看修改的配置: 验证是否生效 [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# docker exec -it nginx2 bash root@a9c9f31cdccf:/# head /etc/nginx/nginx.conf -n 3 user nginx worker_processes 1
4, 修改默认存储路径
a, 重建/var/lib/docker目录 #备份数据到新的存放路径 service docker stop mkdir /docker.bak mv /var/lib/docker/* /docker.bak #创建软连接 mkdir /home/docker-data mv /docker.bak/* /home/docker-data/ && rmdir /docker.bak ln -s /home/docker-data /var/lib/docker b, 修改配置 vi /usr/lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd --graph /new-path/docker #reload配置文件 systemctl daemon-reload #重启docker systemctl restart docker.service
补充知识:Docker 指定数据储存目录
Docker 指定储存目录(原参数 --graph 已经失效 。)
方法一
一、在 Docker 配置文件中配置 /etc/docker/daemon.json
下面的命令是在 daemon.json 文件没有内容的时候进行添加的。如果有内容,就需要
cat << EOF >>/etc/docker/daemon.json { "data-root": "/mnt/docker-data" } EOF systemctl restart docker
方法二
二、在启动参数中配置
vim /usr/lib/systemd/system/docker.service
在里面的EXECStart的后面增加后如下:
ExecStart=/usr/bin/dockerd --data-root='/home/docker' systemctl daemon-reload systemctl restart docker
以上这篇docker文件存放路径, 获取容器启动命令操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
您可能感兴趣
- docker-compose命令(docker-compose教程之安装使用和快速入门)
- dockerexec参数详解(docker安装pxc集群的详细教程)
- docker容器内服务怎么启动(docker部署confluence的完整步骤)
- docker 改变存储位置方式(修改Docker镜像默认存储位置的方法解决方法)
- kalilinux安装到u盘教程学习(kali安装docker和portainer的配置方法)
- docker容器里面有java运行环境吗(利用 Docker 构建简单的 java 开发编译环境的方法详解)
- docker安装与使用教程(5分钟安装docker详细步骤)
- docker 加入k8s吗(k8s和Docker关系简单说明)
- docker运行tomcat服务(使用 docker部署tomcat并接入skywalking的使用)
- docker部署golang(如何使用Docker部署Go Web应用的实现)
- docker 容器怎么访问宿主机网络(Docker绑定固定IP/跨主机容器互访操作)
- dockerexec详解(docker中的run/cmd/entrypoint的区别详解)
- jenkins集成docker自动部署(详解docker部署Jenkins新手使用教程)
- linuxrabbitmq安装和使用教程(用docker部署RabbitMQ环境的详细介绍)
- 2022-01-25 00:54:18
- docker 命令上传镜像到镜像仓库(Docker 制作镜像Dockerfile和commit操作)
- 融入小人物的喜怒哀乐,黄渤饰演的角色为什么让人观看时欲罢不能(融入小人物的喜怒哀乐)
- 《极限挑战》深访都市夜归人,夜间打工者体验,黄磊录完憔悴了(极限挑战深访都市夜归人)
- Google 推出了一个游戏生成器,让不会编程的你也能自己设计游戏(推出了一个游戏生成器)
- 二胎家庭老大爱闹情绪,用这招很有效(二胎家庭老大爱闹情绪)
- 一个30岁男人外遇失败的全过程(一个30岁男人外遇失败的全过程)
- 《无敌破坏王2》 不聊彩蛋,聊聊我从动画里看到的现实那些事儿(无敌破坏王2不聊彩蛋)
热门推荐
- python怎么做图像识别(Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例)
- css3动画让元素绕着圆圈转动(css3动画过渡实现鼠标跟随导航效果)
- docker部署php本地开发环境(CentOS7环境下使用Docker搭建PHP运行环境的过程详解)
- python3简单编程(Python3.5面向对象编程图文与实例详解)
- dedecms关闭站点(dedecms恶意注册与发广告文章的解决办法)
- python excel 合并表格(Python实现合并excel表格的方法分析)
- jQuery判断对象是否存在
- laravel count 报错(解决laravel5.5访问public报错的问题)
- python快速数据分类(Python基于滑动平均思想实现缺失数据填充的方法)
- nginx 反向代理详细配置(nginx反向代理配置去除前缀案例教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9