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`