温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

archlinux中的第一个容器该怎么创建

发布时间:2021-12-01 14:28:59 来源:亿速云 阅读:121 作者:柒染 栏目:云计算

archlinux中的第一个容器该怎么创建,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1.运行以下命令创建我们的第一个容器 

sudo docker run -i -t base/archlinux /bin/bash

#如果需要使用ubuntu镜像
sudo docker run -i -t ubuntu /bin/bash

#如果需要使用centOS镜像
sudo docker run -i -t centos /bin/bash

#如果需要使用centOS7镜像
sudo docker pull openshift/base-centos7 /bin/bash

不过有可能出现如下异常,出现该异常可以试着更换一下源,或者试一下通过docker pull来先把镜像拉取到本地。

archlinux中的第一个容器该怎么创建

若无异常,则进入我们的第一个容器

archlinux中的第一个容器该怎么创建

命令中的-i保证容器中STDIN开启,-t标志则是让docker为创建容器分配一个伪tty终端。这两个参数是创建交互式容器最基本的参数。如若没有这两个参数,创建的是一个运行于后台的容器。

命令中的/bin/bash则是告诉docker成功过创建一个新的容器后,启动一个bash shell。

其中的archlinux、centos等Linux发行版字样则是告知docker基于什么镜像来创建容器。其他镜像可以到docker下载你需要的镜像,如下图,找到你需要的镜像,右侧的Docker Pull Command栏会跟你说对应的镜像拉取命令。

archlinux中的第一个容器该怎么创建                archlinux中的第一个容器该怎么创建

可以通过先拉取镜像到本地,执行上面的docker run命令如果检测到本地的镜像,docker则不再到Docker Hub Registry查看是否有对应的镜像,如果本地无对应的镜像,则到Docker Hub Registry中查看,如果查找到,则下载到本地:

#拉取archlinux镜像
sudo docker pull base/archlinux

2.现在来使用我们刚刚创建好的第一个容器

在使用容器之前我们先来熟悉几个常用的命令。

#查看目前有几个容器,多少个暂停,多少个停止,多少个正在运行
[bysu@subaoya ~]$ sudo docker info

#######下面就是运行后的一部分结果############
Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 1
########################################

[bysu@subaoya ~]$ sudo docker ps  #查看正在运行的容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              
d092d144e887        base/archlinux      "/bin/bash"         35 minutes ago      Up 12 minutes  
PORTS               NAMES
                    sad_rosalind
[bysu@subaoya ~]$ sudo docker ps -a   #查看所有状态的容器
CONTAINER ID   IMAGE           COMMAND       CREATED        STATUS    PORTS     NAMES
2552cacc1928   base/archlinux  "/bin/bash"   33 seconds     Exite d26 seconds   ecstatic_galileo
d092d144e887   base/archlinux  "/bin/bash"   35 minutes ago Up 12 minutes       sad_rosalind

[bysu@subaoya ~]$ sudo docker ps -a|grep Up|awk '{print $1}'   #查看正在运行的容器名
d092d144e887

#查看所有容器的名字
sudo docker ps -a -q

#######下面就是运行结果############
bfacc5ccb74d
a56a719eb52a
0fc9b2bc3e84

#删除不在运行的所有容器
sudo docker rm $(sudo docker ps -a -q)

#######下面就是运行结果############
bfacc5ccb74d
0fc9b2bc3e84
Error response from daemon: You cannot remove a running container a56a719eb52ae8bb3ecbe22bc1b029f203206b0f7144e74992038bb76c56b6ea. Stop the container before attempting removal or force remove

#停止一个正在运行的容器
sudo docker stop a56a719eb52a

#######下面就是运行结果############
a56a719eb52a

通过前面的方式创建容器时,可以给容器命名。如果创建时不指定名字,则会随机生成容器名字。

sudo docker run --name my_first_container -i -t base/archlinux /bin/bash

archlinux中的第一个容器该怎么创建

一般地,上述创建容器成功,也直接进入容器,我第一时间想到的是exit(不知道有没其他命令切出容器,如果需要用到的,自行搜索引擎),如此这般之后,就有可能出现刚刚切出的容器已经停止运行。这会导致你后续如果想通过docker exec -it my_first_container bash 或者sudo docker attach my_first_container再次进入容器 my_first_container,会出现异常,需要先通过命令sudo docker start my_first_container,重新启动该容器。以上命令中容器名可以用容器ID替换。

查看主机名

hostname

archlinux中的第一个容器该怎么创建

查看网络接口

ifconfig

archlinux中的第一个容器该怎么创建

ifconfig命令不存在的问题,参考

安装其他软件跟archlinux中是一样的。

3.创建守护式容器

守护式容器可以长期运行,没有交互式会话,一般用于作为运行应用程序和服务的载体。其创建命令如下:

sudo docker run --name my_daemon -d base/archlinux /bin/sh -c "while true;do echo hello docker;sleep 1;done"

archlinux中的第一个容器该怎么创建

上述命令中,-d参数告知docker将容器放后台运行。

由于上面创建的容器放在后台,我们作为容器的“创世者”,它是死是活我们多少总有点关心的。

sudo docker ps -a

通过status字段,得知它还活着。竟然得知还活着,那自然而然又想知道ta过得好不好——有没在正常工作了。可以通过查看日志,得知ta的近况如何。

sudo docker logs my_daemon

实时查看日志可以使用下列命令。

sudo docker logs -f my_daemon

#实时查看最新日志
sudo docker logs --tail 0 -f my_daemon

#实时查看最新日志,加上-t标志为每条日志项加上时间戳,方便调试
sudo docker logs --tail 0 -ft my_daemon

退出请Ctrl+c,用过Linux的应该都知道。

[bysu@subaoya ~]$ sudo docker attach my_daemon
hello docker
hello docker

....

上面标红的代码执行后,无法通过Ctrl+c退出容器。无奈的我只能把xshell给X掉重连。有知道怎么关掉的麻烦告知一下(也许是无法关闭)。

4.Docker日志驱动

执行docker run命令时通过--log-driver选项来实现。如果通过该选项指定syslog,将容器的所有日志输出重定向到syslog,则会同时禁用docker logs命令,具体命令如下:

sudo docker run --name my_log_daemon --log-driver="syslog">

如果要禁用容器所有的日志,则可用选项none,该选项同样会禁用docker logs命令。

5.查看容器内的进行

使用sudo docker top my_first_container可以查看容器内的进程

archlinux中的第一个容器该怎么创建

6.Docker统计信息

可以通过docker stats命令,动态查看多个容器的CPU,内存,网速,IO,这能快速监控一台主机上的一组容器。

archlinux中的第一个容器该怎么创建

7.在容器内部运行进程

通过docker exec命令在容器内部额外启动新进程。在容器内可以运行的进程有两种类型:后台任务和交互式任务。

容器中运行后台任务

sudo docker exec -d my_first_container touch /etc/createFile

容器中运行交互命令

sudo docker exec -t -i my_first_container /bin/bash

如果容器在创建时就是交互式的,可以直接sudo docker attach命令附到原本的容器上,效果等同上面这条命令。

8.停止守护式容器

sudo docker stop 容器名/容器ID

9.自动重启容器

可通过--restart标志让docker自动重启容器。--restart标志会检查容器退出的代码,并据此来决定是否要重启容器。Docker默认不会重启容器。

总是自动重启容器的命令

sudo docker run --restart=always --name my_daemon -d base/archlinux /bin/sh -c "while true;do echo hello docker;sleep 60;done"

--restart标志被设置为always,无论容器退出的代码是什么,Docker都会自动重启该容器。

如果--restart标志被设置为on-failure,则只有容器退出的代码为非0值时,才会自动重启。同时还可以设置一个可选参数,标志重启次数。

sudo docker run --restart=on-failure:5 --name my_daemon -d base/archlinux /bin/sh -c "while true;do echo hello docker;sleep 60;done"

当该容器退出代码为非0时,Docker会尝试最多5次的重启。

10.深入容器

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI