Ubuntu
添加ubuntu-docker源
首先添加你的ubuntu-docker源: 打开你的/etc/apt/sources.list加入下面的源
ubuntu12.04
deb http://rnd-mirrors-langfang.huawei.com/docker/apt/repo ubuntu-precise main
ubuntu14.04
deb http://rnd-mirrors-langfang.huawei.com/docker/apt/repo ubuntu-trusty main
ubuntu15.04
deb http://rnd-mirrors-langfang.huawei.com/docker/apt/repo ubuntu-vivid main
然后执行下面的命令就能安装最新的docker
shell apt-get update apt-get install docker-engine
如果需要安装某个版本的docker,运行下面这个命令即可
shell apt-get install docker-engine=1.11
(1.11为示例)
- docker常用操作
- 配置docker代理
- # vim /etc/default/docker
- export http_proxy=“******”
- export https_proxy=“******”
- # service docker restart
导入环境变量:http_proxy,https_proxy
-
- 配置docker仓库地址(默认为官方镜像仓库)
注意:从第三方镜像仓库获取镜像可能出现https证书问题
解决方案:
- 进入/etc/default目录,找到docker文件,在其中添加如下代码:
- DOCKER_OPTS="--insecure-registry dl.dockerpool.com:5000(实际第三方镜像库的地址)"
- 之后重启docker服务:sudo service docker restart
- 下载docker镜像并安装服务
此处以ubuntu为例,也可直接下载公司内部提供的欧拉docker镜像。
# sudo docker pull ubuntu
查看容器中镜像:
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 104bec311bcd 4 days ago 129 MB
直接启动镜像:
# docker run -it -d ubuntu:latest
使用22映射端口号run镜像启动容器:
# docker run -d -p :22 ubuntu:latest
挂卷启动:
# docker run -it -v /home/xul:/mnt ubuntu:latest
冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径。
查看运行的容器:
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
c3b1a9a03326 ubuntu:latest "/bin/bash" 9 minutes ago Up 9 minutes 进入容器:
# sudo docker exec -it c3b1a9a03326 /bin/bash
进入容器后,可以在容器中安装服务。
在宿主机执行docker commit,合并生成新的镜像。
#docker commit -m "ccs"(注释说明) -a "huawei"(修改者) c3b1a9a03326 css:v1.0(新镜像名称)
编写dockerfile,集成服务所需要的配置和启动脚本,合并到新的镜像。(备注:也可以将安装等步骤都合并在dockerfile中一次完成,只是dockerfile文件的编写复杂一些)
保存镜像:
#docker save -o <NAME>.tar ubuntu:latest(镜像名称及tag)
加载本地镜像:
#docker load < /***/***/<NAME>.tar (import)
设置镜像名称及tag
#docker tag <imageid> name:tag
Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取Dockerfile,根据指令生成定制的image。
- FROM
dockerfile里的第一条指令,后面跟有效的镜像名。
- ADD:挂载文件
格式为ADD path1 path2
该命令将复制path1指定的到容器中的path2。 其中path1可以是Dockerfile所在目录的一个相对路径;也可以是一个URL;还可以是一个tar文件(自动解压为目录),eg:
ADD /home/redhat/test /home/test
- ARG
定义变量,只在build时有效,不会被保存在镜像中
- RUN
后跟要执行的linux命令,每一条RUN指令(可能会有多条linux命令)会在当前容器最上面的可读写层执行并且提交成一个新的镜像层,接下来的指令会在这个新的镜像层里执行。
- CMD
CMD指令指定你制作出来的镜像在启动成容器时运行命令的默认的参数。
- ENTRYPOINT
容器的进入点。这个指令会覆盖它前面的CMD指令,而多个 ENTRYPOINT指令只有最后一个生效。同时也可以在在启动container 的时候指定–entrypoint参数来覆盖dockerfile里的ENTRYPOINT。
- EXPOSE
EXPOSE指定容器对外暴露的端口号。
- ENV
指定环境变量的值,保存在镜像中。