Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
注意:docker官网在国外,我是基于境外centos7安装的,众所周知,国内网速可能比较慢,建议换源或者使用代理。
安装docker
此处参考
连接Linux这些操作就不来了,不还还有人不会ssh连接Linux吧,不会吧,不会吧
我是在Centos7进行安装,可以使用以下命令查看CentOS版本
lsb_release -a
在 CentOS 7安装docker要求系统为64位、系统内核版本为 3.10 以上,可以使用以下命令查看
uname -r
查看是否已安装docker列表
yum list installed | grep docker
安装docker
yum -y install docker
-y表示不询问安装,直到安装成功,安装完后再次查看安装列表
或者使用官方安装脚本自动安装
安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
启动docker
启动docker
systemctl start docker
查看docker服务状态
systemctl status docker
测试是否启动成功, 可以输入docker
, 输出
Usage: docker [OPTIONS] COMMANDA self-sufficient runtime for containersOptions: xxxxxxxxxxRun 'docker COMMAND --help' for more information on a command.
则为成功启动。
拉取docker镜像
这里就是docker为什么那么好用的关键部分了!!!
比如,我要配置python环境,
我只需要打开https://hub.docker.com/_/python?tab=tags
,找到我要配置的版本,比如python3.7
,那么,我只需要输入
docker pull python:3.7
然后等待拉取安装即可。
又比如,我心心念念的golang环境,也是通过docker配置好的。输入docker pull golang
,就会拉取最新的golang版本,也就是等效于docker pull golang:latest
。
你没猜错,就是形如docker pull
,不加tag时就默认为latest
然后输入docker images
,就可以看到我拉取的镜像的列表。
REPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest bf756fb1ae65 6 months ago 13.3kBpython 3.7 22c70bba8283 5 days ago 920MBgolang latest a794da9351a3 5 days ago 810MB
官方还提供了很多镜像库,可以前往docker镜像库地址:
https://hub.docker.com/
连接docker的坑
此处有几个坑,
仔细记好哦,
第一,如果你之前安装并配置了vm虚拟机,那么,就需要在Windows的设置当中,关掉其他的网络连接,否则会连接不上docker(无论是本机的docker还是远程服务器上的docker都连接不上).
第二,如果你是在Windows本地上安装的docker-desktop,那么请在设置的General中勾选Expose daemon on tcp://localhost:2375 without TLS
第三,配置你的防火墙,也就是当运行时Windows防火墙会弹出一个窗口,询问是否允许其通过,请选择允许。
至于具体的jetbrains系列的ide如何连接docker,可以参考:
http://coding.laiczhang.com/2020/07/%E8%AE%B0%E5%BD%95%E5%88%9D%E5%AD%A6docker%E8%B8%A9%E7%9A%84%E5%9D%91/