Docker 容器信息
docker info 查看信息
docker 更改镜像目录 方式:
1、配置文件修改
# cat /etc/sysconfig/docker |grep -v ^# |grep -v ^$ other_args="--graph=/data/docker" DOCKER_CERT_PATH=/etc/docker DOCKER_NOWARN_KERNEL_VERSION=1
建立 lvm 逻辑分区 便于扩展
# lvcreate -L 2T lv_docker vg_home # mkfs.ext4 /dev/vg_home/lv__docker # mkdir /mnt/docker # mount /dev/vg_home/lv_docker /mnt/docker/ # service docker stop # cp -r /var/lib/docker/* /mtn/docker # mount /dev/vg_home/lv_docker /var/lib/docker # cat /etc/fstab --- /dev/vg_home/lv_docker /var/lib/docker ext4 defaults 0 0
Docker 启动:
# /etc/init.d/docker start
Docker 镜像
# docker images # docker ps -a 执行记录 所有容器状态 docker ps -a 查看所有容器 的状态; 查看终止 的容器 ID 信息。 docker ps -a -q
删除 镜像 容器
删除镜像 IMAGE ID
docker rmi 787a2e217a1e
rm 删除容器 rmi 删除镜像
软链接 可能会影响性能
# cp -rf docker docker.bak # cp -rf docker /<my_new_location>/ # ln -s /<my_new_location>/docker docker
2、启动指定路径
service docker start docker images 查看镜像列表; docker ps 状态 docker run - 运行一个容器 -t - 分配一个(伪)tty (link is external) -i - 交互模式 (so we can interact with it) ubuntu:14.04 - 使用 ubuntu 基础镜像 14.04 /bin/bash - 运行命令 bash shell docker ps :列出当前所有正在运行的container docker ps -l :列出最近一次启动的container docker ps -a :列出所有的container(包含历史,即运行过的container) docker ps -q :列出最近一次运行的container ID
Docker 端口映射:
# docker run -d P sevrer
# docker run -d p port:port server
-d 后台运行;
-P -p 标识来指定容器端口绑定到主机端口。 两种方式的区别是: -P : 是容器内部端口随机映射到主机的高端口。 -p : 是容器内部端口绑定到指定的主机端口。
默认都是绑定 tcp 端口,如果要绑定 UDP 端口,可以在端口后面加上 /udp
端口绑定检查: [ name ]
docker port website
容器两种方式进行启动
一种是基于创建一个容器并启动
docker create
docker start
另外一种是状态下的启动
docker start
启动 容器报错问题;结束容器进程,清除网络映射。重启网卡 再起docker 启容器。
pkill docker
# 关闭进程 iptables -t nat -F
# 清除 nat 规则 ifconfig docker0 down
# 关闭网卡 brctl delbr docker0
# 删除 虚拟网桥
# 最后重启docker后解决
查看WEB 应用程序日志
docker logs [ID或者name] 可以查看容器内部的标准输出。
docker logs name
查看容器进程:
docker top webstie
docker inspect 查看Docker 的底层信息;
docker inspect website
使用 docker inspect 来查看Docker的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。
Docker 批量操作
docker中 启动所有的容器命令 docker start $(docker ps -a | awk '{ print $1}' | tail -n +2) docker中 关闭所有的容器命令 docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2) docker中 删除所有的容器命令 docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2) docker中 删除所有的镜像 docker rmi $(docker images | awk '{print $3}' |tail -n +2)
获取新镜像 pull
docker pull ubuntu:14.04 使用centos镜像进入一个容器 # docker run -t -i centos
// 但是多个窗口的时候会显示同步,
进入容器有多种方式:
docker attach Docker 自带命令; docker attack "docker_name" exec 命令 ID 或者 name docker exec -ti 2a11727d5c2d /bin/bash nsenter 工具
安装报错 ;
docker安装提示需要升级 selinux-policy 等安装包? centos 7 更换源; wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
目录挂载:
Docker 的 bug 解决方式是先找出没有 umount 的路径 cat /proc/mounts | grep "mapper/docker" | awk '{print $2}'
更改运行容器的名称;
docker ps 查看运行的容器;
docker rename pensive_feynman web_tes
docker rm 可以删除容器 ;但是删除之前必须是 stop 状态;
docker rm ubuntu:14.04 docker rm centos:6.7
启动运行 nginx 容器示例:
docker run -d nginx 后台运行 ; docker exec :在运行的容器中执行命令
-d :分离模式: 在后台运行 -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端
docker exec -it mynginx /bin/sh
docker commit 编辑镜像
从容器创建一个新的镜像;
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
docker commit -a "name" -m "my-tomcat" website my-tomcat:v2
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停;
容器上传下载 拷贝文件 [ cp ]
上传测试文件:
docker cp start-kube.sh website:/root/
下载文件 docker cp
docker cp website:/test.html /root/
进入容器:
docker exec -it website /bin/bash
查看文件:
diff 查看容器的目录结构;
docker diff ID/NAME
# docker diff webstie
docker 操作记录:
下载一个 镜像 docker pull images 运行一个容器 docker run -d -p 0.0.0.0:18080:8080 images -d:让容器在后台运行。 -P:将容器内部使用的网络端口映射到我们使用的主机上 -p:指定端口 --name name12 docker run -d -p 0.0.0.0:18080:8080 --name rancher12 rancher/server docker Port ID 查看端口; docker logs -f ID 查看运行日志; 检查WEB应用程序 docker inspect 来查看Docker的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息 docker rm 命令来删除不需要的容器