2020年8月

阮一峰的docker入门

假设容器名称是esp, 镜像地址是hubertxxu/esp8266_build:0.1, 要挂载的windows目录是path/to/host/folder, 挂载到docker容器中的目录是/path/to/container/folder

# 从镜像创建容器并运行
docker run --name esp -dt hubertxxu/esp8266_build:0.1

# 从镜像创建容器并运行, 同时挂载windows目录
docker run --name esp -v path/to/host/folder:/path/to/container/folder -dt hubertxxu/esp8266_build:0.1

# 将当前目录挂载为容器目录, 如果有同名容器则先删除再建立
docker run --rm --name %proj_name% -v %cd%:/home/%proj_name% -dt hubertxxu/esp8266_build:0.1

# 运行已经存在的容器
docker start esp

# 运行一个容器中的命令, 如果运行的是bash就相当于进入了容器环境
docker exec -it esp bash

docker还有个attach命令, 如docker attach esp, 实际上attach的是docker刚运行的时候建立的终端, 且只能看输出而不能操作.

容器创建后还能再挂载目录吗?

从官方的资料来看是不行了, 在油管上有个视频指导如何在容器创建后挂载目录, host系统是linux, 需要修改hostconfig.jsonconfig.v2.json这两个文件, 可惜的是这两个文件在windows上都找不到.

如何从容器创建镜像并且push到docker hub中?

  • web登录hub.docker.com, 创建一个repository
  • 进入本机命令行, 从容器(如esp)创建本地镜像(如bl2028n_buildenv, tag是v0.0.1) docker commit esp bl2028n_buildenv:v0.0.1
  • 登录docker docker login
  • 在docker desktop中复制镜像的很长很长的ID, 打上远端tag docker tag 508e21e71xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx darceye/bl2028n_buildenv:v0.0.1
  • push到云端 docker push darceye/bl2028n_buildenv:v0.0.1
    参考:https://blog.csdn.net/qq_36801250/article/details/106208755

docker安装看官方,以Ubuntu为例
docker修改源:

Docker 官方中国区
https://registry.docker-cn.com

网易
http://hub-mirror.c.163.com

ustc
https://docker.mirrors.ustc.edu.cn

修改方法

直接设置 –registry-mirror 参数,仅对当前的命令有效

docker run hello-world --registry-mirror=https://docker.mirrors.ustc.edu.cn

修改 /etc/default/docker,加入 DOCKER_OPTS=”镜像地址”,可以有多个

DOCKER_OPTS="--registry-mirror=https://docker.mirrors.ustc.edu.cn"

支持 systemctl 的系统,通过 sudo systemctl edit docker.service,会生成
etc/systemd/system/docker.service.d/override.conf 覆盖默认的参数,在该文件中加入如下内容:

[Service] 
ExecStart= 
ExecStart=/usr/bin/docker -d -H fd:// --registry-mirror=https://docker.mirrors.ustc.edu.cn

新版的 Docker 推荐使用 json 配置文件的方式,默认为 /etc/docker/daemon.json,非默认路径需要修改 dockerd 的 –config-file,在该文件中加入如下内容:

{ 
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] 
}

修改完后重启:

service docker restart

规律第一

  • 严格按规律办事
  • 创新不能破坏规律
  • 高效不能破坏规律

遵守规律

  • 绝大多数捷径是违背规律的假捷径,要十分小心地分辨它们
  • 绝大多数想办法节约的时间是忽视规律的假节约,最终会让你花费多数倍的时间
  • 绝大多数想办法节约的成本是忽视规律的假节约,最终会让你花费多数倍的成本
  • 不走捷径也未必成功,也可能是走弯路
  • 花费大量时间和成本也未必成功,也可能是花在了价值很低的事物上
  • 非常非常地仔细审查路径、时间、成本,及其慎重地选择投入
  • 除非在本质上改变,否则提升的程度是有极限的,我们能做的只是减少浪费

拒绝诱惑!按规律办事!