查看docker信息
sudo docker info
运行第一个容器
sudo docker run -i -t ubuntu /bin/bash # -i 表示开启容器的STDIN -t 表示为开启的容器一个伪终端
容器的主机名就是该容器的ID, 可以在容器终端输入exit,来退出容器回到宿主机终端,这时容器已经停止运行
查看当前系统中的容器列表
sudo docker ps -a # docker ps命令只显示正在运行的容器,docker ps -a命令会显示正在运行的和已经停止运行的容器
显示最后一个创建的容器,无论容器正在运行还是停止
sudo docker ps -l
有3种方式可以唯一指代容器
1. 短UUID
2. 长UUID
3. 容器名
给容器命名
sudo docker run --name 容器名 -i -t ubuntu /bin/bash # 容器名必须是唯一的,如果已经存在则命令会执行失败,创建容器时如果不指定容器名,则会随机分配一个容器名
删除容器
sudo docker rm 容器名/容器ID
重新启动已经停止的容器
sudo docker start/restart container_name/id
创建一个容器但是不运行这个容器
sudo docker create
附着到容器上
sudo docker attach container_name/id # 退出容器的shell,容器会停止
创建守护式容器
在docker run命令加上-d参数
sudo docker run --name daemon_name -d ubuntu /bin/bash # 会返回容器的长id
获取容器的日志
sudo docker logs container_name/id # 返回最后几条日志输出, 使用-f参数可以持续跟踪日志输出,, Ctrl+C可以退出日志跟踪, -t num 可以指定跟踪最后几条日志
docker日志驱动
sudo docker run --name daemon_name -d --log-driver="syslog" ubuntu /bin/bash # 会将容器的日志输出到Syslog,导致docker logs不输出任何东西
–log-driver有3个选项:
- json-file(默认)
- Syslog
- none 禁用所有容器中的日志, docker logs命令也会被禁用
查看容器内的进程
sudo docker top container_name/id # 可以看到容器内的所有进程,运行进程的用户及进程ID
Docker统计信息
sudo docker stats container1 container2 container3 ....... # 显示一个或多个容器的统计信息(CPU,内存,网络IO,存储IO的性能和指标)
保存镜像到一个文件中
docker save -o nginx.tar nginx:lates 或 docker save > nginx.tar nginx:latest
其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)
从一个文件中导入一个镜像
docker load -i nginx.tar 或 docker load < nginx.tar
其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息
将一个容器导出为一个文件
docker export -o nginx-test.tar nginx-test
其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)
从一个文件中导入一个容器
docker import nginx-test.tar nginx:imp 或 cat nginx-test.tar | docker import - nginx:imp