Docker入门安装与运行
前言
docker
是一个存放应用的容器, 将下载、安装、运行等进行了规范化。
本文将在虚拟机中CentOS
使用桥接连接本机。关于桥接可以看我的另一篇文章, 上方搜索桥接即可。
CentOS7安装
1 |
|
安装运行Hello World
docker
包含几个命令, docker pull
下载, docker images
查看镜像, docker run
运行。
这是一个hello world
程序, docker hub 地址
1 | # 1. 从仓库下载hello-world |
执行操作:
docker client
客户端向docker daemon
服务端发送docker run
命令docker daemon
检查是否有image
镜像, 没有则向docker hub
仓库下载image
镜像docker daemon
会创建一个container
容器运行这个image
镜像
安装运行Nginx
先安装docker pull nginx
, 然后运行docker run -dp 8080:80 nginx
。
-d
: 后台运行容器, 并返回容器ID-p
: 进行端口映射, 格式为:主机端口:容器端口
然后我们就可以在自己电脑输入http://ip地址:8080
访问到nginx
。
WARNING: IPv4 forwarding is disabled. Networking will not work.
如果提示IPv4
转发没有开启, 那就去开启。
1 | echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf |
为什么要做端口映射?
Docker
容器可以看成是一个虚拟机
, 那我们的3台机器就有这种关系
![主机关系](https://yuml.me/diagram/nofunky/class/[win10真正的主机]->[CentOS7虚拟机],[CentOS7虚拟机]->[Docker Nginx容器])
如果是直接安装在CentOS7虚拟机
上的话, 我们的win10真正的主机
是可以直接访问Nginx
的。 但是现在是运行在Docker
容器里, 中间隔了个CentOS7虚拟机
, 我们就需要做端口映射, 如docker run -dp 8080:80 nginx
。
这样我们在win10真正的主机
访问CentOS7虚拟机
的8080
端口时, CentOS7虚拟机
会转发到Docker
容器的80
端口(这也是之前我们为什么要开启IPv4
转发的原因),我们就可以在win10真正的主机
间接访问Docker
容器中的Nginx
了。
注意
实际最好端口要一致, 这里为了容易区分, 才分为8080:80
, 最好为80:80
。
修改Nginx配置文件
Docker
容器就像一个虚拟机, 所以我们也可以通过bash
进入。
1 | # 1. 后台启动nginx, 映射虚拟机端口8080到容器端口80 |
进入容器, 就可以像普通的Linux
一样进行操作了, 如编辑配置文件vim /etc/nginx/nginx.conf
。