Nice to meet U, I’m Docker
Docker刚出来那会儿,还是粗暴地一个virtualbox+系统镜像的分发方式,后来有了katematic,再后来有了docker-tools。
一年不见,docker变化真大,最近有项目上nodejs,正好重新认识一下docker。
一、安装
当前,docker分商业版和社区版,个人当然是安装社区版:docker-ce-desktop-mac
不推荐使用Homebrew,安装的只是一个docker-cli 命令行工具
镜像加速
Docker再国内访问很慢,有些地区是直接墙掉的,所以一定要用镜像加速 Preferences - Daemon - Registry mirrors
下增加DaoCloud的免费镜像地址 http://ebccc999.m.daocloud.io
,选DaoCloud是google出来的结果,速度也不错(宣称永久免费),就选了它。阿里云的还要进控制台看,太麻烦了。填写完保存重启Apply & Restart
。
安装完,命令行输入docker info
查看详细信息。
二、试一试
起一个nginx的容器试试 docker container run --publish 80:80 nginx
,由于新安装,本地并没有Nginx镜像,所以会从仓库拉一个过来。
1 | $ docker container run --publish 80:80 nginx |
下载完成后就可以看到 http://localhost Nginx 启动成功的页面。
如果是后台运行的话,加上 --detach
参数:docker container run --publish 80:80 --detach nginx
,会返回一个容器ID,比如:0077235b8a9d*
列出运行中的容器
docker container ls
1 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
停止容器
docker container stop 0077235b8a9d
列出所有容器,包括已经停止的
docker container ls -a
1 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
每个容器的名字 NAMES 是唯一的,可以指定 docker container run --publish 80:80 --detach --name nginx4node nginx
,不指定就随机分配一个。
重启已停止的容器
docker container start 0077235b8a9d
查看容器日志
docker container logs nginx4node
删除一个容器
docker container rm 0077235b8a9d
参数自定义
docker container run --publish 8080:80 --detach nginx:*.* --name nginx4node
8080:80
,前面是宿主机端口,后面是容器的端口nginx:*.*
,Nginx指定版本号,如果不指定,就是取最新版nginx:latest
老朋友 Katematic
有时候GUI可以提高生产力,为何一定要在CLI装B呢?通过 Katematic 可以很直观,也很方便的配置镜像。