/var/lib/docker 目录存放着docker镜像、容器以及容器的配置
/var/lib/docker/container 所有的容器都保存在此目录下
sudo docker info
返回所有容器和镜像的数量、Docker使用的执行驱动和存储驱动,以及Docker的基本配置
sudo docker run -i -t ubuntu /bin/bash
运行容器
参数:
-i 保证容器中STDIN开启
-t 使docker为容器分配一个伪tty终端
这两个参数是为了创建一个能交互的容器
sudo docker ps -a
查看当前系统中容器的列表
docker ps 列出正在运行的容器
docker ps -a 列出所有容器
docker ps -q 只列出容器ID
docker ps -l 列出最后一个运行的容器
docker ps -n x 显示最后x个容器
sudo docker run --name Mycontainer -it ubuntu /bin/bash
--name 给容器命名
sudo docker rm Mycontainer
删除容器,用容器名或容器ID
sudo docker start Mycontainer
重启已经停止的容器,用容器名或容器ID
sudo docker attach Mycontainer
附着到正在运行的容器
sudo docker run -d -p --name daemon_container ubuntu
-d 参数创建守护式容器,没有交互式会话
-p用来控制Docker在运行时应该公开那些网络端口给宿主机
-p用来控制Docker在运行时应该公开那些网络端口给宿主机
docker可以通过两种方式来在宿主机上分配端口
1、在宿主机上随机选择一个位于32768~61000的一个比较大的端口号来映射到容器中的80端口上,例如上面的命令
2、具体指定一个端口号来映射
sudo docker run -d -p 8080:80 --name daemon_container ubuntu
也可以绑定到特定的网络接口上
sudo docker run -d -p 127.0.0.1:8080:80 --name daemon_container ubuntu
如果不指定宿主机端口,则会绑定到随机端口
sudo docker run -d -p 127.0.0.1::80 --name daemon_container ubuntu
-P (大写)参数可以用了对外公开在Dockerfile中通过EXPOSE指令公开的所有端口
sudo docker run -d -P --name daemon_container ubuntu 这条命令会将容器中的80端口对本地宿主机公开,并且绑定到宿主机的一个随机端口上
sudo docker ps -l 或者sudo docker port可以查看容器端口的映射情况
sudo docker port ID 80
-v选项可以将宿主机的目录作为卷挂载到容器里
sudo docker run -d -p 80 --name website -v $PWD/website:/var/html/website registry/nginx nginx
-v将宿主机目录挂载到容器中,为docker提供持久数据或者共享数据。对卷的修改会直接生效,提交或创建镜像时,卷不被包含在镜像里,卷可以在容器间共享。当容器停止,卷的内容依旧存在。
sudo docker top daemon_container
查看守护式容器的进程 看到容器中所有进程、运行进程的用户以及进程ID
sudo docker stats
用了显示一个或多个容器的统计信息
显示内容包括容器名,CPU、内存、网络I/O及存储I/O的性能和指标
docker exec 在容器内部额外启动新进程,可以在正在运行的容器中进行维护、监控及管理任务
sudo docker exec -d daemon_container touch /etc/new_file
在容器中运行后台任务
sudo docker exec -it daemon_container /bin/bash
运行交互式任务
sudo docker stop daemon_container
停止正在运行的容器 也可以用docker kill
sudo docker run --restart=always --name daemon_container -d ubuntu /bin/sh -c "while true; do echo hello world;sleep 1;done"
--restart 自动重启由某种错误而导致停止的容器,这个标志会检查容器的退出代码
--restart=always 表示无论容器的退出代码是什么,Docker都会自动重启该容器
--restart=on-failure 表示只有当容器的退出代码为非0时,才会自动重启
on-failure还接收一个可选的参数,表示最多重启次数 --restart=on-failure:10 最多重启10次
sudo docker inspect container
对容器进行详细的检查,然后返回其配置信息,包括名称、命令、网络配置以及很多有用的数据
sudo docker cp /data/temp container:/data
从宿主机复制文件夹到容器中去
sudo docker cp container:/data /data/temp
从容器中复制文件到宿主机
sudo docker rm <contain_ID>
删除容器指定ID容器
sudo docker rm $(sudo docker ps -a -q)
删除所有容器
sudo docker rmi <image_ID>
删除指定ID镜像
sudo docker rmi $(sudo docker images -q)
删除所有容器
删除untagged images 也就是id为<None>的images
sudo docker rmi $(docker images | grep"^<none>"|awk"{print $3})
sudo docker images
列出镜像
sudo docker pull ubuntu:14:04
拉取镜像
sudo docker search ubuntu
查找镜像