docker run [选项] [镜像名] [shell命令] [参数] #选项: -i, --interactive Keep STDIN open even if not attached,通常和-t一起使用 -t, --tty 分配pseudo-TTY,通常和-i一起使用,注意对应的容器必须运行shell才支持进入 -d, --detach Run container in background and print container ID,台后运行,默认前台 --name string Assign a name to the container --h, --hostname string Container host name --rm Automatically remove the container when it exits -p, --publish list Publish a container's port(s) to the host -P, --publish-all Publish all exposed ports to random ports --dns list Set custom DNS servers --entrypoint string Overwrite the default ENTRYPOINT of the image --restart policy --privileged Give extended privileges to container -e, --env=[] Set environment variables --env-file=[] Read in a line delimited file of environment variables--restart 可以指定四种不同的policy
POLICY | 说明 |
---|---|
no | 默认no,容器退出后不自动重启 |
on-failure[:max-retries] | 仅当容器以非零退出状态退出时,才重新启动。(可选)限制 Docker 守护程序尝试的重新启动重试次数。 |
always | 无论退出状态如何,始终重新启动容器。如果指定始终,Docker 守护程序将无限期地尝试重新启动容器。容器也将始终在守护程序启动时启动,无论容器的当前状态如何。利用此选项可以实现自动启动容器 |
unless-stopped | 无论退出状态如何,始终重新启动容器,但如果容器之前已进入停止状态,则不要在守护程序启动时启动它。 |
exit从容器内退出,且容器不停止:
ctrl+p+q范例:启动后台守护并指定运行容器的名字
[root@rocky8 ~]$ docker run -d --name web01 nginx [root@rocky8 ~]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b0b9221c09a9 nginx "/docker-entrypoint.…" 5 seconds ago Up 5 seconds 80/tcp web01范例: 一次性运行容器中命令
[root@rocky8 ~]$ docker run alpine cat /etc/issue Welcome to Alpine Linux 3.17 Kernel \r on an \m (\l) [root@rocky8 ~]$ docker run alpine du -sh / 7.0M /范例: 运行交互式容器并退出
[root@rocky8 ~]$ docker run -it alpine sh / # ls bin etc lib mnt proc run srv tmp var dev home media opt root sbin sys usr / # cat /etc/issue Welcome to Alpine Linux 3.17 Kernel \r on an \m (\l) #查看容器是在运行 [root@rocky8 ~]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bad7e7c5ef39 alpine "sh" 7 seconds ago Up 7 seconds angry_knuth #现在在容器中执行退出 / # exit #查看容器是否运行 [root@rocky8 ~]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ##另外一种退出容器的方法 ##ctrl+p+q / # [22:13:43 root@rocky8 ~]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2bae444f9796 alpine "sh" 51 seconds ago Up 51 seconds nifty_davinci #这种情况相当于临时从容器中出来,还可以利用以下命令进入进去 [root@rocky8 ~]$ docker exec -it 2bae444f9796 sh
总结:
本文主要讲述了docker启动容器的命令docker run的用法,希望对大家有所帮助。