要基于镜像新建一个容器,可以使用 docker run 命令。下面是创建容器的基本语法:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

其中,OPTIONS 是可选的参数,IMAGE 是要使用的镜像名称或镜像 ID,COMMAND 是容器启动时要执行的命令,ARG... 是传递给命令的参数。

以下是一些常用的选项(OPTIONS):

  • -d:以后台(守护进程)模式运行容器。
  • -p HOST_PORT:CONTAINER_PORT:将容器的端口映射到主机的端口。
  • -v HOST_DIR:CONTAINER_DIR:将主机目录挂载到容器内部。
  • --name CONTAINER_NAME:指定容器的名称。
  • -e KEY=VALUE:设置环境变量。
  • --restart POLICY:容器重启策略,如 alwayson-failure 等。

1、例1 

docker run -d --name my-nginx -p 80:80 nginx

这个命令是基于 nginx 镜像创建一个名为 my-nginx 的容器,并进行了一些配置:


-d:以后台(守护进程)模式运行容器。

--name my-nginx:将容器命名为 my-nginx。

-p 80:80:将容器内部的端口 80 映射到主机的端口 80。

这个命令的作用是在后台运行一个基于 nginx 镜像的容器,并将容器内部的 80 端口映射到主机的 80 端口。这样,可以通过主机的 IP 地址和端口 80 访问容器内部的 nginx 服务。

 2、例2

docker run --name pdpdaiocr -p 5170:7000 -it -v $PWD:/paddle pdpdgpu-aiocr

这个命令是基于镜像 pdpdgpu-aiocr 创建一个名为 pdpdaiocr 的容器,并进行了一些配置:


--name pdpdaiocr:将容器命名为 pdpdaiocr。

-p 5170:7000:将容器内部的端口 7000 映射到主机的端口 5170。

-it:以交互模式运行容器。

-v $PWD:/paddle:将当前目录挂载到容器内部的 /paddle 目录。

pdpdgpu-aiocr:使用的镜像名称。

这个命令的作用是在容器内部启动一个应用程序或服务,该容器可以通过主机的 5170 端口访问,并且挂载了当前目录到容器内部的 /paddle 目录,以便与容器内部的文件进行交互。

3、例3 

docker run -p 9200:8888  
-e JUPYTER_ENABLE_LAB=yes  
-e JUPYTER_TOKEN=docker            
--name jupyter  
-d jupyter/datascience-notebook:latest

这条命令是用于在 Docker 中启动一个名为 "jupyter" 的容器,基于 "jupyter/datascience-notebook:latest" 镜像运行。下面是命令中使用的各个参数的解释:


-p 9200:8888: 这个参数指定了主机与容器之间的端口映射关系。
它将主机的 9200 端口映射到容器的 8888 端口,这意味着可以通过访问主机的 9200 端口来访问容器内运行的 Jupyter Notebook 服务。

-e JUPYTER_ENABLE_LAB=yes: 这个参数设置了一个环境变量 JUPYTER_ENABLE_LAB

-e JUPYTER_TOKEN=docker: 这个参数设置了一个环境变量 JUPYTER_TOKEN

--name jupyter: 这个参数为容器指定了一个名称 "jupyter",方便后续对容器的管理和操作。

-d: 这个参数表示以后台模式(detached mode)运行容器,使其在后台持续运行。

综合起来,该命令的作用是在 Docker 中启动一个名为 "jupyter" 的容器,使用 Jupyter 数据科学笔记本镜像,并将主机的 9200 端口映射到容器的 8888 端口,启用 Jupyter Lab,并设置访问令牌为 "docker"。这样,你可以通过访问主机的 9200 端口来使用 Jupyter Notebook 服务。