搜索 “#docker” ,共找到 12 项结果
×
  • Falcon
    09-20 16:38
    #docker# docker volume

    移除卷数据
    先docker compose down停止项目
    列出卷
    docker volume ls
    找到你项目的卷名
    docker volume rm your_project_name_dbdata
    如果要移除所有未使用的卷,
    docker volume prune
    这会提示您确认删除所有未使用的 volumes。
  • Falcon
    01-06 17:08
    #docker#使用以下命令查看正在运行的容器的启动命令:

    ```bash
    docker inspect --format '{{.Config.Cmd}}' <容器ID或容器名称>
    ```

    将 `<容器ID或容器名称>` 替换为你要查看的容器的实际ID或名称。这将显示容器启动时使用的命令。
  • Falcon
    2023-05-07 21:46
    #docker# #docker desktop#
    当年在macOS的docker 容器中用docker.for.mac.host连接主机已经不再支持,比如这条动弹的信息已经过期:https://d.cellmean.com/p/20224773
    新版的docker desktop使用的宿主主机名为:docker.for.mac.host.internal 或者host.docker.internal ,所以,如果你想要mac内的容器使用宿主机的代理,比如http代理端口为8088 ,那么可以这样写 http://host.docker.internal:8088 ,使用curl测试:

    docker run -it --rm -e http_proxy=http://host.docker.internal:8088 curlimages/curl cip.cc

    参考:https://bernieslearnings.com/easy-way-to-connect-docker-to-localhost/

    > 要将Docker连接到本地主机,在运行Docker for Windows或Docker for Mac时,您可以使用特殊的DNS名称host.docker.internal,它解析为宿主机使用的内部IP地址。

    在容器内部,要访问宿主机主机,您只需将请求指向http://host.docker.internal:<port>。

    这在Docker Desktop 之外的生产环境中将不起作用,因此只在开发环境中使用。
    对于Linux用户,只需使用带有--network="host"选项的docker run命令,并使用127.0.0.1指向您的本地主机。
  • Falcon
    2022-11-05 17:09
    #docker# 在github上看ols-docker-env的commit , 原来 docker-compose 被批量替换成了docker compose 。我记得以前docker-compose需要作为一个单独的应用安装在 /usr/bin/docker-compose 上,我猜想可能在某个版本后的docker可以以插件的形式安装 docker-compose,作为 docker命令的一部分,其地位相当于docker run / docker exec被整合了。这是在ubuntu下安装成插件的方式:

    sudo apt-get update
    sudo apt-get install docker-compose-plugin

    参考:https://docs.docker.com/compose/install/linux/#install-using-the-repository
  • Falcon
    2022-11-04 18:10
    #docker# docker stats 命令查看docker 容器的资源占用
  • Falcon
    2022-06-29 18:41
    #docker#
    Docker Volumn 挂载点
    - 容器共享卷(挂载点)
    docker run --name test1 -it myimage /bin/bash
    上面命令中的 myimage是用前面的dockerfile文件构建的镜像。 这样容器test1就有了 /data1 和 /data2两个挂载点。
    下面我们创建另一个容器可以和test1共享 /data1 和 /data2卷 ,这是在 docker run中使用 --volumes-from标记,如:
    可以是来源不同镜像,如:
    docker run --name test2 -it --volumes-from test1 ubuntu /bin/bash
    也可以是同一镜像,如:
    docker run --name test3 -it --volumes-from test1 myimage /bin/bash
    上面的三个容器 test1 , test2 , test3 均有 /data1 和 /data2 两个目录,且目录中内容是共享的,任何一个容器修改了内容,别的容器都能获取到。
    - 最佳实践:数据容器
    如果多个容器需要共享数据(如持久化数据库、配置文件或者数据文件等),可以考虑创建一个特定的数据容器,该容器有1个或多个卷。
    其它容器通过--volumes-from 来共享这个数据容器的卷。
    因为容器的卷本质上对应主机上的目录,所以这个数据容器也不需要启动。
    如: docker run --name dbdata myimage echo "data container"
     
    ref :https://www.cnblogs.com/51kata/p/5266626.html
  • Falcon
    2022-05-30 18:11
    #daily tips# #docker# 注意:ufw 的防火墙规则对 docker 映射的端口不生效,当容器使用 -p 参数时,Docker会直接修改iptables 能将端口暴露到外面, 并且运行ufw status不能看到这种变更。
    解决的方法:
    1. 停止使用 -p 参数,使用 docker link 或 docker networks代替。
    2. 让容器只监听 localhost 网卡,这样不会把端口暴露到外面,如:docker run -p 127.0.0.1:8080:8080 ...
    3. 如果一定要使用 -p 参数,可以禁止docker 修改iptables ,防止它将端口暴露在外面,可以向 /etc/docker/daemon.json 加入 { "iptables" : false } 并重启docker。(注意,这有一定的副作用,不推荐使用这种方式)

    参考:
    https://askubuntu.com/questions/652556/uncomplicated-firewall-ufw-is-not-blocking-anything-when-using-docker
    https://askubuntu.com/a/652572
    https://chjdev.com/2016/06/08/docker-ufw/
    https://docs.docker.com/config/containers/container-networking/
  • Falcon
    2022-03-26 23:02
    #docker#

    解决:Error response from daemon: OCI runtime create failed: runc did not terminate sucessfully: unknown.

    调试方法:

    1. systemctl stop docker (在openwrt用service dockerd stop)

    2. dockerd --debug (以debug模式运行dockerd)

    3. docker start container_name (运行docker 容器)



    最后我发现是/var/run空间不足
  • Falcon
    2022-02-24 16:18
    #docker# 查看已启动docker容器的run命令:docker exec -it 容器名称 ash -c "ps -fe" ,第一个进程就是,ash是容器用的shell,有可能是bash或其他。
  • Falcon
    2022-02-24 15:23
    #docker# 修改docker默认的存储位置(包括镜像和容器的等的位置)

    首先,查看当前docker存储位置: `docker info |grep -i 'docker root dir'` ;

    其次,停止所有docker容器 `docker stop $(docker ps -a | awk '{print $1}'| tail -n +2) `,systemctl或service停止docker服务;把第一步的docker存储目录打包到某个位置,比如(/usr/docker.tar.gz) : `tar -czvf /usr/docker.tar.gz docker/` ,或者参考 https://d.cellmean.com/p/6ab162d573c9 用rsync复制到另一个位置,可以保留权限。

    最后编辑 /etc/docker/daemon.json ,修改 `data-root` 项的值为新目录。