docker基础

docker run命令基于Ubuntu镜像创建一个容器

sudo docker run -i -t ubuntu /bin/bash

-i: 开启容器的STDIN

-t: 分配一个伪tty终端

ubuntu: 镜像名

/bin/bash: 启用bash shell

查看容器的主机名

hostname

检查容器的/etc/hosts文件

cat /etc/hosts

查看容器的进程

ps -aux

在容器中安装vim

apt-get update && apt-get install vim

退出容器

exit

查看所有的容器

docker ps -a

没有-a,查看正在运行的容器,有-a会列出正在运行和已经停止的所有容器。

给容器重命名

sudo docker run --name linux-ubuntu -i -t ubuntu /bin/bash

附着到正在运行的容器(进入容器)

sudo docker attach linux-ubuntu

但是还需要再回车一下,不然跟死机似得。

创建长期运行的容器

一般服务器需要长期的运行,这时就要创建一个长期运行的容器,也就是守护式容器。

sudo docker run --name daemon_dave -d ubuntu /bin/sh -c "while true;do echo hello world; sleep 1; done"

上面的daemon_dave容器会一直输出hello world,我们可以用获取容器日志命令来查看。

sudo docker logs daemon_dave

跟踪容器的日志, ctrl+c退出跟踪。

sudo docker logs -f daemon_dave

可以给日志加上时间戳

sudo docker logs -ft daemon_dave

查看容器内的进程

sudo docker top daemon_dave

在容器内部运行的进程

在容器内部运行的进程有两种

  • 后台任务
  • 交互式任务

docker exec在容器内部启用新进程。

在容器中运行后台任务

sudo docker exec -d daemon_dave touch /etc/new_config_file

-d: 需要运行一个后台进程

在容器内运行交互式命令

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

-i: 开启容器的STDIN

-t: 分配一个伪tty终端

显示最后x个容器

docker ps -n x

自动重启容器

sudo docker run --restart=always --name daemon_dave -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

--restart=on-failure:5表示当容器退出代码为非0值的时候才会重启,最多重启的次数为5。

深入容器

查看容器

sudo docker inspect daemon_dave

有选择的获取容器信息

sudo docker inspect --format='{{.State.Running}}' daemon_dave

=和空格是一样的效果,查看容器的IP试试

sudo docker inspect --format='{{.NetworkSettings.IPAddress}}' daemon_dave

也可以同时查询多个容器

sudo docker inspect --format '{{.Name}} {{.State.Running}}' daemon_dave daemon_dave1

删除容器

先停止容器

sudo stop daemon_dave2

删除容器

sudo docker rm daemon_dave2

删除所有容器

docker rm `docker ps -a -q`

你可能感兴趣的:(Docker)