11.1记
linux docker相关命令:
- 查看docker状态: systemctl status docker
- 启动docker:systemctl start docker
- 停止docker:systemctl stop docker
docker相关命令:
运行第一个容器:
sudo docker run -i -t ubuntu /bin/bash
- -i 开启标准输入
- -t 为创建的容器分配一个伪终端
- ubuntu: 基于ubuntu镜像创建容器
- /bin/bash为创建好容器后执行的命令,此处即启动一个Bash shell
sudo docker ps -a :查看当前系统中的容器列表
容器命名:
sudo docker run --name xxx -i -t ubuntu xxx : 自定义容器名
重新启动已经停止的容器:
sudo docker start xxxx :启动一个容器,启动后会沿用docker run 命令时的参数来运行
- xxxx可以是容器名称或者容器ID
附着到容器上:
sudo docker attach xxxx: 重新附着到容器的会话上
创建守护式容器:
守护式容器没有交互式回话,适合运行应用程序和服务。
sudo docker run --name daemon_dave -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
- -d: Docker会将容器放在后台运行
sudo docker ps可以看到一个正在运行的容器
容器内部都在干什么:
sudo docker logs daemon_dave
docker logs 命令获取容器的日志
其它参数:
- sudo docker logs --tail 10 daemon_dave 获取日志最后10行
- sudo docker logs --tail 0 -f daemon_dave 跟踪容器的最新日志
- sudo docker logs -ft daemon_dave 给每条日志加上时间戳
查看容器内的进程
sudo docker top daemon_dave
在容器内部运行程序
容器内运行的进程有两种:后台任务和交互式任务
- sudo docker exec -d daemon_dave touch /etc/new_config-file
-d标志标明运行一个后台进程, 此例会在daemon_dave 容器内创建一个空文件
- sudo docker exec -t -i daemon_dave /bin/bash
运行一个交互式任务,可以在此处运行的shell中查看下上面创建的空文件是否成功
停止守护式容器
sudo docker stop daemon_dave
自动重启容器
当某种错误导致容器停止运行,可以通过--restart让docker重启容器
--restart会检查容器的退出代码,来决定是否要重启,默认不会重启
例如:
sudo docker run --restart=always --name daemon_dave -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
--restart=always 不管容器退出代码是什么,都会自动重启。
还可以设为on-failure, 这样只有当容器退出代码为非0值的时候,才会自动重启。
深入容器
sudo docker inspect daemon_dave
docker inspect命令会对容器进行详细的检查,然后返回其配置信息。
可以用-f挥着--format标志来选定查看结果:
sudo docker inspect --format='{{ .State.Running}}' daemon_dave
这条命令会返回容器运行状态。
sudo docker inspect --format='{{ .NetworkSettings.SandboxID }}' daemon_dave
.......
删除容器
sudo docker rm 容器ID
运行中的容器是无法删除的,需要先docker stop或者kill。