Table of Contents
地址:https://www.w3cschool.cn/docker/docker-tutorial.html
Docker 入门实战
Docker 是一个开源的应用容器引擎。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器中,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
Docker 架构
Docker 使用客户端-服务端(C/S)架构模式,使用远程 API 来管理和创建 Docker 容器。
Docker 容器通过 Docker 镜像来创建。
Docker 安装
Ubuntu Docker 安装
前提条件
Docker 要求 Ubuntu 系统的内核版本高于 3.10,可以通过 uname -r 命令查看内核版本。
使用脚本安装 Docker
- sudo apt-get update
- sudo apt-get install -y docker.io
- sudo service docker start
Docker 使用
创建容器并启动
可以通过 docker images 命令查看本地的镜像。如果本地没有需要的镜像,可以通过 docker search IMAGE 命令搜索远程镜像。比如 docker search alpine。alpine 比 ubuntu 这些镜像轻量,很适合作为 docker 基础镜像。
创建并启动容器:docker run -itd -p 80:80 –name=”alpine-web” apline。这条命令的解释是:
- run:创建容器。如果本地没有指定的镜像,会从远程仓库下载镜像并创建运行。(下载镜像:docker pull IMAGE)
- -i:可以交互。(我这里好像并没能进入容器)
- -t:在新容器内指定一个伪终端或终端。
- -d:后台模式。
- -p:端口映射。前面为容器端口,后面为宿主机端口。
- –name:容器命名。
如果不加 -it 参数,容器将无法启动。
进入容器:docker exec -it alpine-web /bin/sh。这条命令指进入容器 alpine-web 并执行 /bin/sh 程序。alpine 为了减小体积,没有内置 bash,所以按照 ubuntu 教程使用 /bin/bash 是无效的。
退出容器:exit 或者 Ctrl+P+Q
停止容器:docker stop alpine-web
启动容器:docker start alpine-web(重启:restart)
容器里安装 nginx
进入容器(alpine-web)后,执行命令:apk add nginx。
安装好之后进入 /ect/nginx/conf.d 目录,修改 default.conf 文件:
server { listen 80 default_server; listen [::]:80 default_server; root /www; index index.html index.htm; client_max_body_size 32m; }
(创建)进入 /www 目录,写一个简单的 index.html 文件。
然后进入 /var/run 目录,创建 nginx 目录。如果这里没有 nignx 目录,运行 ningx 会报错:[emerg] open() “/run/nginx/nginx.pid” failed (2: No such file or directory)。关于这个报错,我这里只是一种原因。从网络搜索的结果来看还有其他的原因。
启动 nignx 后可以用 ps 命令查看一下 ningx 是否已经运行。如果已经运行,可以在宿主机浏览器里输入 localhost 回车。不出意外应该可以看到 index.html 里的内容。