docker运行在一个独立的隔离的进程中。

当用户执行dockerrun,它将启动一个有着独立的文件系统,独立的网络和独立的进程树的进程。

基本的docker run命令的格式:

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


前台和后台

后台(-d)

在后台模式(-d=true或者直接使用-d)

所有的IO操作都必须通过网络连接或者共享卷来进行,因为容器在后台运行的时候就不能收到命令行。

当然也可以通过执行dockerattach重新连上在后台执行的容器。

如果你选择运行一个容器在后台模式,那你就不能使用-rm选项了。

 

前台

在前台模式(默认的)

docker run可以在容器里开启一个进程同时

你可以通过控制台来获得进程的STDINSTDOUTSTDERR

可以作为终端和传递信号。所有这些的配置方法如下:

-a, --attach=[]           连接容器的stdinstdoutstderr (默认连接这三个流)

-t, --tty=false           使用终端。经常和 -i一起使用。

--sig-proxy=true          代理所有收到的系统信息(我测试了一下好像没有作用)

-i, --interactive=false   打开STDIN和容器交互。经常和 -t一起使用。

 

docker run -a stdin -a stdout -i-t ubuntu /bin/bash


实例

使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。

[html] view plain copy
  1. docker run --name testnginx -d nginx:latest  

使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。

[html] view plain copy
  1. docker run -P -d nginx:latest  

使用镜像nginx:latest以后台模式启动一个容器,将容器的80端口映射到主机的80端口,主机的目录/data映射到容器的/data。

[html] view plain copy
  1. docker run -p 80:80 -v /data:/data -d nginx:latest  

使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

[html] view plain copy
  1. runoob@runoob:~$ docker run -it nginx:latest /bin/bash  
  2. root@b8573233d675:/#  


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐