添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
多情的大象  ·  Spring ...·  4 月前    · 
一直单身的跑步鞋  ·  sql ...·  1 年前    · 


如何修改运行中的docker容器的端口映射和挂载目录

原理:docker上存在的是镜像,镜像运行起来之后就叫做容器。要想查看镜像里面都有什么,那就先要让镜像运行起来,可以进入容器内部查看。

列出容器:  docker ps

docker images #查看镜像信息

运行你想要查看的镜像(docker run + 镜像id或者是镜像名称):docker run imageID/imageName

docker ps    #列出容器,查看 容器ID 或docker pa -a
方法1、在(进入)容器内修改文件
docker exec -it 容器ID /bin/bash
docker里面没有vim,需要自行安装,安装代码如下所示。不过不推荐这种形式,因为里边的文件是临时的,容器被删除之后,配置就失效了,需要从新配置。
apt-get update
apt-get install vim
方法2、使用docker cp命令拷贝修改
可以通过下面的代码将需要修改的文件拷贝出来,修改完成之后再拷贝回去。
#将容器中的文件拷贝出来
sudo docker cp 容器ID:/etc/mysql/my.cnf /home/tom/
#将容器中的文件拷贝回去
sudo docker cp /home/tom/my.cnf  容器ID:/etc/mysql/
方法3、使用-v挂载文件夹(推荐) 注意 https://blog.csdn.net/qq_22041375/article/details/105143383
最后一种方法是在启动的时候使用-v将容器内部的文件夹挂载(映射)到本地的某个路径下,以后以后可以直接在本地修改,不需要进入容器内部.
#冒号前是本地路径(需要绝对路径),冒号后是容器中的路径
$ docker run --name mytomcat -v /home/www/webapps:/usr/local/tomcat/webapps -d tomcat
/etc/nginx/nginx.conf  #docker中nginx主配置文件
/var/log/nginx         #日志文件
/usr/share/nginx/html  #网页文件

常用命令: docker-compose 命令 --help 获得一个命令的帮 docker-compose up -d nginx 构建启动nignx容器 - 以守护进程模式运行加-d选项

docker-compose exec nginx bash                 登录到nginx容器中
docker-compose down                            此命令将会停止 up 命令所启动的容器,并移除网络
docker-compose ps                              列出项目中目前的所有容器
docker-compose restart nginx                   重新启动nginx容器
docker-compose build nginx                     构建镜像 
docker-compose build --no-cache nginx          不带缓存的构建
docker-compose top                             查看各个服务容器内运行的进程 
docker-compose logs -f nginx                   查看nginx的实时日志
docker-compose images                          列出 Compose 文件包含的镜像
docker-compose config                          验证文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。 
docker-compose events --json nginx             以json的形式输出nginx的docker日志
docker-compose pause nginx                     暂停nignx容器
docker-compose unpause nginx                   恢复ningx容器
docker-compose rm nginx                        删除容器(删除前必须关闭容器,执行stop)
docker-compose stop nginx                      停止nignx容器
docker-compose start nginx                     启动nignx容器
docker-compose restart nginx                   重启项目中的nignx容器
docker-compose run --no-deps --rm php-fpm php -v   在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器
查看compose日志
$ docker-compose logs web
 $ docker-compose logs redis


本机文件可以同步到容器

在本机/tmp/source目录中新建hello.txt文件

touch /tmp/source/hello.txt ls /tmp/source/hello.txt

hello.txt文件在容器/tmp/destination/目录中可见

使用 docker exec 命令,可以在容器中执行命令。

docker exectest ls /tmp/destination/hello.txt

所以在宿主机对目录 /tmp/source/ 的修改,可以同步到容器目录 /tmp/destination/ 中。

4. 容器文件可以同步到宿主机

在容器/tmp/destination目录中新建world.txt文件

docker exec test touch /tmp/destination/world.txt docker exec test ls /tmp/destination/hello.txt world.txt

world.txt文件在宿主机/tmp/source/目录中可见

ls /tmp/source/hello.txt world.txt