专栏首页康怀帅的专栏Docker 实践遇到的问题(持续更新)

Docker 实践遇到的问题(持续更新)

本文列举了使用 Docker 过程中遇到的问题。

时区

基于 Debian 的镜像通过设置 环境变量 改变时区,在 Dockerfile 中增加 ENV 或在启动容器时指定 $ docker run -e TZ=Asia/Shanghai ...

ENV TZ=Asia/Shanghai

基于 Alpine 的镜像先安装 tzdate,再设置环境变量

RUN apk add --no-cache tzdata

ENV TZ=Asia/Shanghai

交叉运行

https://github.com/justincormack/cross-docker

x86_64 架构运行其他架构( armhf 等)容器,原理是运用 QEMU

macOS 不用以上脚本,实际测试中与树莓派对比,性能较差,毕竟是虚拟机。

网络

macOS

macOS 不能 ping 通容器(Linux docker0 默认为 172.17.0.1),所以容器想要 ping 主机,必须填写路由器分配给主机的 IP(192.168.199.100,而不是 172.17.0.1)。

DNS、host

不能在文件中写入配置,写入也不生效。在 daemon.json 中可以配置 DNS , 设置 hosts 请通过 docker builddocker run 时的命令参数进行设置。

使用 Docker Compose

本博客系列文章运行容器方式由 docker run 转变为 docker-compose

必须使用 .env.example 文件来定义变量。使用时将 .env.example 复制为 .env 文件。

规范

一个容器,一个服务

比如不要在一个容器中安装 LNMP,可以使用 Docker Compose 分配到 3 个容器,集中启动、管理。

一个容器运行多个服务:https://docs.docker.com/engine/admin/multi-service_container/

命令

使用 docker image 管理镜像 代替 docker images

使用 docker container 管理容器 代替 docker ps

使用 docker volume 管理数据卷

使用 docker network 管理容器网络

数据管理

详细内容请查看 Docker 数据管理

开发环境

Use bind mounts to give your container access to your source code

生产环境

Use volumes to store container data.

不赞成使用

容器互联

反对 --link,请使用自定义的 Docker 网络来连接多个容器

数据管理

反对 -v--volume,请使用 --mount

废弃功能

https://docs.docker.com/engine/deprecated/

More Information

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Docker 桌面版支持 kubernetes

    Docker for Mac v17.12 正式支持 k8s。 Docker for Windows v18.02-rc1 正式支持 k8s。 相关文章 Bet...

    康怀帅
  • Docker CE for Mac v17.12 正式支持 k8s

    视频:https://www.bilibili.com/video/av17307986/

    康怀帅
  • Docker Swarm mode 详解

    使用 docker swarm Dcoker 内置的集群管理的工具,Docker CE 1.12+。注意与旧的 Docker Swarm 区分开来。 OS: C...

    康怀帅
  • Docker 架构中的几个核心概念

    2015 年 6 月 ,docker 公司将 libcontainer 捐出并改名为 runC 项目,交由一个完全中立的基金会管理,然后以 runC 为依据,大...

    田飞雨
  • 【趣学程序】Docker之简介安装

    一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本...

    趣学程序-shaofeer
  • 「走进k8s」Docker三剑客之Docker Machine(八)

    PS:云环境下批量部署 Docker环境,使用的比较多的是公有云和私有云上安装。命令比较简单。docker machine就是在远程机器上安装docker的,虽...

    IT故事会
  • docker安装nginx,gitlab,maven私服,mysql

    docker run java 直接进行下载并安装 docker pull java 仅仅下载到镜像 docker images 查看镜像 docker se...

    编程软文
  • docker容器基本操作

    若与
  • Docker / OSX快速入门

    Docker(容器技术)始于2013年,自那时起我便经常可以看到有关docker的消息。之前我已经尝试过docker的入门例子,但我觉得自己没有真正理解dock...

    hzr
  • Docker三大核心概念之容器

    使用docker create命令新建的容器处于停止状态。可以使用docker start命令启动它。

    分母为零

扫码关注云+社区

领取腾讯云代金券