• docker如何启动容器(docker启动容器的命令)
  • 发布于 1周前
  • 30 热度
    0 评论
启动容器
docker run 可以启动容器,进入到容器,并随机生成容器ID和名称。docker run等价于docker pull + docker start
帮助: man docker run
命令格式:
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 /
范例: 运行交互式容器并退出
退出两种方式:
1. exit 容器也停止
2. 按ctrl+p+q 容器不停止
[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的用法,希望对大家有所帮助。

用户评论