搜索

docker run.sh要自己写吗

发布网友 发布时间:2022-02-26 21:24

我来回答

2个回答

懂视网 时间:2022-02-27 01:46

产品型号:Thinkpad E15

系统版本:centos8

docker命令教程

例1:运行一个 container并加载镜像centos,运行起来这个实例后,在实例中执行 /bin/bash命令

docker常用参数:

run  运行

-i   以交互模式运行容器,通常与 -t 同时使用;

-t  为容器重新分配一个伪输入终端,通常与 -i 同时使用;

[root@xuegod63 ~]# docker images 

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

centos    latest              196e0ce0c9fb        12 days ago         196.6 MB

[root@xuegod63 ~]# docker run -it centos:latest bash  #启动一个实例,也就2秒就可以搞定

[root@068fd8c70344 /]# ls   #查看实例环境

[root@f072b5ae7542 /]# cat /etc/redhat-release 

退出容器:

[root@f072b5ae7542 /]#exit

例2:在 container 中启动一个长久运行的进程,不断向stdin输出 hello world 。模拟一个后台运行的服务

docker常用参数:

-d  后台运行容器,并返回容器ID;

-c  后面跟待完成的命令

[root@xuegod63 ~]# docker run  -d centos:latest /bin/sh -c "while true;do echo hello world; sleep 1; done"

1b3493487c4fde6eb233d59fa9ab9a204ad993cd3debbd5a9a28be6816694605

#容器的ID

从一个容器中取日志,查看输出的内容,可用于后期检查docker实例在标准输出中弹出的错误信息或正常的信息。 

语法: docker  logs   容器实例的Name/ID  

[root@xuegod63 ~]# docker logs 1b3493487c4    #容器的ID可以写全,也可以不写全,只要唯一就可以了

hello world

hello world

hello world

hello world

查看正在运行的容器:

[root@xuegod63 ~]# docker ps  #列出所有运行中容器。

也可以使用短ID或docker实例的名字查看日志输出:

[root@xuegod63 ~]# docker logs 4109c3446284

或:

[root@xuegod63 ~]# docker logs flamboyant_davinci

[root@xuegod63 ~]# docker ps -a  #-a 列出所有容器(包含沉睡/退出状态的容器);

总结:

1、docker run -it centos:latest bash  启动一个实例 

2、docker run  -d centos:latest /bin/sh -c "while true;do echo hello world; sleep 1; done"  #后台运行容器,并返回容器ID;

3、docker  logs   容器实例的Name/ID从一个容器中取日志,查看输出的内容

4、docker ps  #列出所有运行中容器。

热心网友 时间:2022-02-26 22:54

docker run指定的命令如果不是那些一直挂起的命令(比如运行top,不断echo),就是会自动退出的。-d命令是设置detach为true,根据官方的文档,意思是让这个命令在后台运行,但并不是一直运行(我们在一个正常的Linux Terminal中运行/bin/bash,运行完了也就完了,不会一直挂着等待响应的,所以确实没办法用daemon方式来跑/bin/bash)。
这个地方官方早期和现在的文档也确实有些前后不一致,现在是detach,早期的文档说指定-d以daemon方式来运行容器,可能存在一定的误解。

另外,如果你需要跑容器里的bash,直接运行docker run -i -t CONTAINER_NAME /bin/bash 就可以了,如果觉得参数比docker attach多,可以设置一个别名(alias)来解决:

alias dockerbash='docker run -i -t CONTAINER_ID /bin/bash'
设置好别名后,直接运行dockerbash就可以进入容器的bash了
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top