docker

来源:互联网 发布:mac 终端登录mysql 编辑:程序博客网 时间:2024/05/20 17:10
docker安装
<< 安装epel源 >>
epel http://ftp.riken.jp/Linux/fedora/epel/6Server/x86_64/epel-release-6-8.noarch.rpm
# yum -y installhttp://ftp.riken.jp/Linux/fedora/epel/6Server/x86_64/epel-release-6-8.noarch.rpm

<< 安装docker >>
命令:yum -y install docker-io

<< docker -d 报错解决办法 >>


命令:yum upgrade device-mapper-libs
################################################################################################

<< 启动docker >>
命令:service docker start


<< 显示 Docker 版本信息 >>
命令:docker version

<< 显示 Docker 系统信息,包括镜像和容器数 >>
命令:docker info

<< 从 Docker Hub 中搜索符合条件的镜像 >>
命令:docker search images-name
例如:docker search httpd

--automated 只列出 automated build 类型的镜像;
--no-trunc 可显示完整的镜像描述;
-s 40 列出收藏数不小于40的镜像。
<< 从 Docker Hub 中拉取或者更新指定镜像 >>
命令:docker pull images-name
例如:docker pull httpd

-a 拉取所有 tagged 镜像 。

<< 将镜像推送至docker Hub >>
------------------------------------------------------------------------------------------------------------------
1. 将镜像推送至远程仓库,默认为 Docker Hub 。
docker push laozhu/nginx:latest

2. 按步骤输入在 Docker Hub 注册的用户名、密码和邮箱即可完成登录。
docker login Username: username Password: **** Email: user@domain.com Login Succeeded

3. 运行后从指定服务器登出,默认为官方服务器。
docker logout
------------------------------------------------------------------------------------------------------------------

<< 列出本地所有镜像 >>
命令:docker images
其中 [name] 对镜像名称进行关键词查询。
-a 列出所有镜像(含过程镜像);
-f 过滤镜像,如: -f ['dangling=true'] 只列出满足 dangling=true 条件的镜像;
--no-trunc 可显示完整的镜像ID;
-q 仅列出镜像ID。
--tree 以树状结构列出镜像的所有提交历史。

<< 列出所有运行中容器 >>
命令:docker ps -a
列出所有运行中容器。
-a 列出所有容器(包括停止的容器);
--before="nginx" 列出在某一容器之前创建的容器,接受容器名称和ID作为参数;
--since="nginx" 列出在某一容器之后创建的容器,接受容器名称和ID作为参数;
-f [exited=<int>] 列出满足 exited=<int> 条件的容器;
-l 仅列出最新创建的一个容器 (包括不再运行的容器);
--no-trunc 显示完整的容器ID;
-n=4 列出最近创建的4个容器;
-q 仅列出容器ID;
-s 显示容器大小。

<< 查看image或container的底层信息 >>
命令:docker inspect <image|container>
通过--format 过滤指定信息
例子:docker inspect --format='{{.NetworkSettings.IPAddress}}' <container> 或者 <image>

<< 查看镜像或者容器的参数 >>
命令:docker inspect centos6.5
默认返回 JSON 格式。
-f 指定返回值的模板文件。

<< 后台启动一个容器 >>
docker run -it -d --name=zyp 8088df7e4adc(镜像ID)
docker run -it --name=zyp 8088df7e4adc /bin/bash 启动容器后直接进入容器。
<< docker run 参数 >>
启动一个容器,在其中运行指定命令。
-a stdin 指定标准输入输出内容类型,可选 STDIN/ STDOUT / STDERR 三项;
-d 后台运行容器,并返回容器ID;
-i 以交互模式运行容器,通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb" 为容器指定一个名称;
--dns 8.8.8.8 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com 指定容器DNS搜索域名,默认和宿主一致;
-h "mars" 指定容器的hostname;
-e username="ritchie" 设置环境变量;
--env-file=[] 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2" 绑定容器到指定CPU运行;
-c 用于给运行在容器中的所有进程分配CPU的shares值,这是一个相对权重,实际的处理速度还与宿主的CPU相关
-m 用于限制为容器中的所有进程分配的内存总量,以 B K M G 为单位
--net="bridge" 指定容器的网络连接类型,支持 bridge / host / none container:<name|id> 四种类型;
--link=[] 待完成
--expose=[] 待完成

<< 进入已经启动的容器 >>
docker exec -it fca4acebf59b /bin/bash
docker attach fca4acebf59b
14.修改镜像的 REPOSITORY名称(仓库)
docker tag 8088df7e4adc centos6.5

15.修改镜像的 TAG(标签)
标记本地镜像,将其归入某一仓库。
-f 覆盖已有标记。
docker tag 8088df7e4adc centos6.5:zyp

16.删除一个或多个镜像
docker rmi 12cd778b028d 37acdb484316
从本地移除一个或多个指定的镜像。
-f 强行移除该镜像,即使其正被使用;
--no-prune 不移除该镜像的过程镜像,默认移除。

17.删除一个或多个容器
docker rm 6ea3916fa741 f2ff25074756
-f 强行移除该容器,即使其正在运行;
-l 移除容器间的网络连接,而非容器本身;
-v 移除与容器关联的空间。

18. 杀死一个或多个指定容器进程。
docker kill ce7bdaf12e12 6ea3916fa741
杀死一个或多个指定容器进程。
-s "KILL" 自定义发送至容器的信号。

19. 启动、停止和重启一个或多个指定容器。
docker start|stop|restart  f2ff25074756
-a 附加标准输入、输出、错误输出
-i 启动一个容器并进入交互模式;
-t 停止或者重启容器的超时时间(秒),超时后系统将杀死进程。

20.将一个容器固化为一个新的镜像
docker commit f2ff25074756 centos_new:zyp
将一个container固化为一个新的image,该命名创建一个新的image 只能选择正在
运行的容器,不推荐使用,建议通过docker build 和dockerfile 创建和管理镜像

21. 将指定的镜像保存成tar归档文件
docker save http > "http.tar"
将指定镜像保存成 tar 归档文件, docker load的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。
-o "debian.tar" 指定保存的镜像归档。

22. 从 tar 镜像归档中载入镜像
docker load < debian.tar docker load -i "debian.tar"
docker save的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。
-i "debian.tar" 指定载入的镜像归档。

23. 将指定的容器保存成 tar 归档文件
docker export http > http.tar
docker import的逆操作。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。

24. 从归档文件(支持远程文件)创建一个镜像
cat http.tar |docker import - http_new
docker importhttp://example.com/export.tar
export的逆操作,可为导入镜像打上标签。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。

25. 查看一个正在运行容器进程,支持 ps 命令参数。
docker top fca4acebf59b

26. 暂停某一容器的所有进程。
docker pause f2ff25074756

27. 恢复某一容器的所有进程。
docker unpause f2ff25074756

28. 获取容器运行时的输出日志。
docker logs -f -t --tail= "s2">"10" insane_babbage
-f 跟踪容器日志的最近更新;
-t 显示容器日志的时间戳;
--tail="10" 仅列出最新10条容器日志。

29. 查看指定镜像的创建历史。
docker history docker history  "o">[options] <image>
--no-trunc 显示完整的提交记录;
-q 仅列出提交记录ID。

30.将文件从容器拷贝到主机
docker cp 6ea3916fa741:/123 /root

31.将主机目录挂载到镜像里面
docker run -it -v /root/scripts/:/root/download:rw http:zyp /bin/bash
默认挂载目录是读写;
主机与容器共享此目录。
数据卷:
"其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的"。感觉像是由一个容器定义的一个数据挂载信息。其他的容器启动可以直接挂载数据卷容器中定义的挂载信息。
(1).先创建一个容器
docker run -it -v /home/dock/Downloads:/usr/Downloads  --name=zyp  http  /bin/bash
(2).再创建一个新的容器,来使用这个数据卷。
docker run -it --volumes-from zyp --name=zyp1 http /bin/bash
--volumes-from用来指定要从哪个数据卷来挂载数据。
32.将文件从主机拷贝到容器
(1).获取容器的id:
docker ps
(2).获取容器的完整id
docker inspect -f '{{.Id}}' 6ea3916fa741
(3).将主机的文件或目录拷贝到容器中(rootfs为容器的root目录)
cp -r 321 /var/lib/docker/devicemapper/mnt/6ea3916fa7413d51b478ef68b1fa45806fec7e14f2e71b00edb35a530b45644c/rootfs/



34.将容器的端口暴露给宿主机的端口
-P 参数,系统将容器的端口随机指定外部端口
例子 docker run -d -P --name=zyp 8088df7e4adc
-p 参数,指定容器内端口映射到宿主机的指定端口
例子 docker run -d -p 80:80 -p 8080:443 --name-zyp 8088df7e4adc
如果执行失败,修改 /etc/sysconfig/iptables ,分别在 *nat 和 filter 添加相关docker的语句,重启防火墙。

35.查看本地哪个端口映射到 container的指定端口,其实用docker ps也可以看到
docker ps

36.给已经运行的容器添加端口映射
iptables -t nat -A  DOCKER -p tcp --dport 3306 -j DNAT --to-destination 172.17.0.19:3306
service iptables save

37.使用build命令创建镜像
docker build <path> 寻找path路径下名为的Dockerfile的配置文件,使用此配置生成新的image
docker build -t repo[:tag] 同上,可以指定repo和可选的tag
docker build - < <dockerfile> 使用指定的dockerfile配置文件,docker以stdin 方式获取内容,使用此配置生成新的image 
























原创粉丝点击