docker run :创建一个新的容器并运行一个命令, 镜像IMAGE后,可跟随命令[COMMAND],在容器中运行。
- -d: 后台运行容器,并返回容器ID;
(需注意的是:*****后台运行容器,必须有一个前台进程,否则docker会自动停止该容器*****)
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
进入容器终端,可通过exit命令退出容器终端
- -P: 随机端口映射,容器内部端口随机映射到主机的端口;
- -p: 指定端口映射,格式为:主机(宿主)端口:容器端口 ;
运行nginx,nginx默认端口80。将容器内部80映射到主机3344端口
然后即可通过主机3344端口访问容器80端口。
- –name=”nginx-lb”: 为容器指定一个名称;
另开一个容器,命名为nginx02
- –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
- –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
- -h “mars”: 指定容器的hostname;
- -e username=”ritchie”: 设置环境变量;
- –env-file=[]: 从指定文件读入环境变量;
- –cpuset=”0-2″ or –cpuset=”0,1,2″: 绑定容器到指定CPU运行;
- –gpus :指定使用的gpu,all全部使用
使用GPU前,需先安装nvidia-docker,安装见nvidia-docker安装指引。
- -m :设置容器使用内存最大值;
- –net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container:<name|id> 四种类型;</name|id>
- –link=[]: 添加链接到另一个容器;
- –expose=[]: 开放一个端口或一组端口;
- –volume , -v: 绑定一个卷
在主机home下新建一个centos01_home,并新建一个test.py文件
新建容器,并绑定 主机目录/home/centos01_home 到 容器 /home,此时容器可通过/home访问主机目录/home/centos01_home下文件
通过容器在/home下新建文件,主机/home/centos01_home目录下也会新建文件(挂载后,容器对挂载目录的操作,实际均是对主机挂载目录的操作)
- –volumes-from 从指定的容器挂载卷
启动一个容器centos01,具名挂载一个卷,挂载的卷为volume_test,通过容器centos01在volume_test下创建一个文件 test.py
启动第二个容器 centos02,从centos01挂载卷,可以发现,centos02挂载了volume_test,通过容器centos02创建一个test02.py。
在容器centos01与centos02中都可以看到创建的文件。实现了容器间数据的共享。
退出容器终端:
- exit 停止容器并退出
- ctrl + p + q 不停止容器退出