docker入门(启用容器)
1、运行第一个容器命令
sudo docker run -i -t ubuntu /bin/bash
运行这个命令后,会根据ubuntu的镜像,创建一个ubuntu的容器
-i 表示容器的STDIN是开启的,-t表示为容器提供一个交互式的shell
ubuntu 表示根据哪个镜像去创建容器
如果本地没有ubuntu镜像,那Docker会在DockerHub的公共镜像库为你找到你所需要的镜像
2、使用容器
我们可以把这个新创建的ubuntu容器当中一个新的操作系统使用,执行一下命令
还可以为这个容器安装软件,比如安装一个vim编辑器
可以提供exit命令退出这个容器
3、查看现有的容器
使用
docker ps -a
圈出来的就是刚刚我们运行的容器
docker ps -a代表查看所有容器
docker ps 查看正在运行的容器
docker ps -l 查看最后一次运行的容器
容器相当于是一个进程,可以在前台运行,也可以在后台运行,在前台运行的时候
我们看图片的第一列:
CONTAINER_ID 代表容器的唯一ID
IMAGE 代表这个容器是由哪个镜像构建的
COMMAND 代码运行容器的时候,为容器指定执行的命令,这个后面再讲,你可以先理解为这个根据容器所属的镜像不同,执行的命令也不同;
STATUS 代码容器的状态,比如运行,介绍状态
PORTS 表示容器开放的虚拟端口号
NAME 容器的名称,可以在启动的时候为容器命名,如果没有为容器命令,Docker会为容器自动生成名字
4、容器命名
刚刚说到了我们可以为容器命名,那怎么操作呢?
很简单,只需要
sudo docker run --name deng_container -i -t ubuntu /bin/bash
使用–name 参数,在后面加上你想为容器取的名字
取名注意事项:
1、名字的字符是有限制的,只能使用a-z,A-Z,0-9,下划线,圆点、横线
用正则表达式就是这样的[a-zA-Z0-9_.-]
2、在一些操作容器docker命令中,我们可以使用容器的名字代替容器的id,因为很明显容器的ID比容器的名字更好记,所以,容器的名字和容器的ID一样,不能重复;
5、重启已经停止的容器
使用
sudo docker start [容器的id或者名字]
去启动已经关闭的容器
是不是很简单
这里要注意的是,重启启动容器的时候,没有使用-i -t 参数,所以容器是在后台运行的,所以容器启动后,我们还行进入容器的shell界面怎么办
只需要一条命令
sudo docker attach deng_container
6、创建守护式容器
我们除了创建交互式的容器以外,我们还可以创建守护式的容器,也就是后台运行的容器
docker run --name daemon_dave -d ubuntu /bin/sh -c “while true;do echo hello world;sleep 1; done”
我们可以在运行容器的时候,使用-d参数,去创建守护式的容器,由图可以看出,创建这样的容器,终端就不会进入容器的交互界面,而是之返回一个容器的id
-c命令,配置这个容器在后台活动的时候需要做些什么
7、容器内部在做什么
刚刚我们创建了一个守护式的容器,并且配置它在后台打印hello world,我们怎么知道它是否正在执行呢?
我们可以使用docker logs命令
docker logs [容器id或者名字]
看,容器控制台的输出,全部打印出来了
docker logs还能配置一些参数,比如
docker logs --tail 10 daemon_dave
获取最后x行
docker logs --tail 0 -f daemon_dave 获取某个容器最新的日志而不必读整个文件
还能使用-t参数新增时间戳
8、查看容器内的进程
我们有时候需要提供查看容器内运行的进程的方式去了解容器的情况
使用:
docker top daemon_dave
9、在容器内部运行进程
我们可以提供docker exec 命令去为一个后台正在运行的容器,执行一个命令,比如在一个后台执行的容器中,创建一个新的文件
docker exec -d daemon_dave touch /etc/new_config_file
10、停止守护式容器
在前台shell运行的容器我们可以使用exit去退出,那后台运行的容器呢?很简单,使用下面的命令
sudo docker stop daemon_dave
11、自动重启容器
容器在运行过程中,可能会因为不可预知的错误导致容器退出,我们可以提供在启动的时候,设置参数,让容器在非自然退出的时候字段重启
命令如下:
sudo docker run --restart=always --name daemon_dave -d ubuntu /bin/sh
-c “while true;do echo hello world;sleep 1; done”
–restart参数,表示的就是为容器设置重启的参数:这里restart被设置为了always,代表容器退出后总是会重启,无论退出代码是什么
我们还可以设置restart= on-failure,这样容器就只有在错误退出的时候才会重启
命令:
–restart=onfailure:5
:5退出代码为非0的时候,docker会尝试重启容器,并且最多五次
12、深入容器
除了使用docker ps命令来了解容器的信息,我们还可以使用
docker inspect [容器名字或id]
获取更多容器信息:
13、删除容器
如果你不需要哪个容器,你可以使用
docker rm [容器名字或id]
删除容器
docker没有提供删除所有容器的命令,不过我们可以使用一些小技巧来删除所有容器
docker rm docker ps -a -q
- 点赞
- 收藏
- 关注作者
评论(0)