Docker 学习记录

地址: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

  1. sudo apt-get update
  2. sudo apt-get install -y docker.io
  3. 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 里的内容。