docker命令总结(持续总结)

来源:互联网 发布:网络地板价格 编辑:程序博客网 时间:2024/05/21 07:56

docker images 查看所有镜像
docker ps -a 查看所有容器
docker pull xxx 获取镜像
docker rmi xxx 移除镜像(删除镜像之前必须删除该镜像依赖的所有容器)
docker rm xxx 移除容器
docker save -o 镜像名字(自己命名)镜像名(要导出的) 可以导出镜像到本地文件
docker load –input xxx 可以把导入的本地文件中载入镜像库中
或者。docker load < xxx 作用也是一样
docker tag old_image:old_version new_image:new_version 可以给镜像重命名
docker commit 提交你作出的一些改变,并生成新的镜像
docker kill 容器ID。结束一个容器的运行
docker stop 容器ID。结束一个容器的运行

(此处docker kill 和docker stop的区别在于,docker kill 是强行终止容器,相当于Linux中的kill -9,而docker stop默认容器会有10s的准备时间,用来保存必要的环境和完成正在运行的进程等,首先向容器中PID为1的进程发送系统信号SIGTERM,如果超过超时时间仍然没有终止进程才会清醒kill进程)

docker push 推送镜像
docker build -t iii xxx 可以创建镜像(docker build -t friendlyhello .)


启动容器

docker run -it -v /Users/lijunfeng/Desktop/ushareit-ad-admin-python:/workspace -p 8000:8000 python:3.6 /bin/bash

docker run -it -v $(pwd):/workspace -p 8000:8000 python:3.6 /bin/bash

-i 保持标准输入并打开
-t 让docker分配一个伪终端,并绑定到容器的保准输入上

1、新建并启动
docker run -it 文件路径 命令(加-d可以让程序以守护进程来运行)

2、也可以先查看容器名字都docker ps
然后docker attach 容器名字。进入容器交互界面

3、从已经建好的容器启动
docker start 容器id(这种方式是后台启动的),要想进入容器可以docker attach 容器名字

4、exit 可以退出容器

5、docker kill 容器名,可以结束容器的运行


docker logs 可以查看容器输出信息
exit退出容器之后,执行docker commit可以保存对容器的修改
docker inspect 可以检查容器的详细信息


关于Dockerfile

Dockerfile中有以下几个命令:
1、 FROM
usage:FROM [image]
解释:指定构建镜像的基础源镜像,FROM必须是除了注释以外的第一个命令

2、MAINTAINER
usage: MAINTAINER name
解释:指定创建镜像的用户

3、RUN
usage:RUN command命令
解释:每条RUN将在当前镜像基础上执行指定命令,并提交为新的镜像,后续的RUN都会在之前的RUN命令提交的镜像作为基础

4、CMD
usage: CMD command命令
解释:CMD命令只能执行一次,如果又多条CMD语句,则只会执行最后一个,CMD命令是在容器启动的时候默认执行的命令

5、EXPOSE
usage:EXPOSE 端口
解释:告诉docker服务端容器对外映射的本地端口,需要在docker run的时候用-p使之生效

6、ENV
usage:ENV key value或ENV key=value,区别在于前者只能设置一个值,后者可以设置多个
解释:指定一个环境变量,会被后续RUN命令使用,并在容器运行的时候保留
例如:ENV myName=”John Doe” myDog=Rex\ The\ Dog \
myCat=fluffy

7、ADD
usage:ADD src destnation
解释:复制本地主机文件目录或远程文件urls并且添加到容器指定路径中

8、COPY
usage:用法和ADD相同
解释:唯一与ADD区别在于不能指定远程urls

9、ENTERPOINT
usage:ENTERPOINT command para1 para2
解释:配置容器启动后执行的命令,每个dockerfile只能有一个ENTERPOINT,当有多个的时候最后一个生效

10、VOLUME
usage:VOLUME [“/data”]
解释:创建一个可以从本地主机或其他容器挂载的挂载点

11、USER
usage:USER daemon
解释:指定运行容器时的用户名或 UID,后续的RUN、CMD、ENTRYPOINT也会使用指定用户。

12、WORKDIR
usage:WORKDIR /path/to/workdir
解释:为后续的RUN、CMD、ENTRYPOINT指令配置工作目录。可以使用多个WORKDIR指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。

13、ONBUILD
usage:ONBUILD [INSTRUCTION]
解释:配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。

——–参考链接(http://blog.csdn.net/u012562943/article/details/52100538)
——-dockerfile经验技巧(http://blog.csdn.net/u012562943/article/details/53433595)


容器数据管理

docker管理数据的方式有两种

  • 数据卷
  • 数据卷容器

一、数据卷是一个或多个容器指定专门绕过Union File System的目录,为持续性或共享数据提供一些有用的功能

  • 可以在docker run的时候添加-v选项来创建一个数据卷,例:sudo docker run –name data -v /data -t -i ubuntu:14.04 /bin/bash,会在新建容器中创建一个/data数据卷,-v选项出了可以创建一个数据卷,还可以挂载当前主机的一个目录到容器中

-实例:

  • 创建一个数据卷,sudo docker run -t -i -d -v /test –name test ubuntu:14.04 echo hello
    使用–volumes-from选项在另一个容器中挂载 /test 卷。不管 test 容器是否运行,其它容器都可以挂载该容器数据卷,当然如果只是单独的数据卷是没必要运行容器的。

  • 挂载一个数据卷,sudo docker run -t -i -d –volumes-from test –name test1 ubuntu:14.04 /bin/bash


链接容器

docker允许把多个容器链接在一起,相互交互信息。docker链接会创建一种容器父子级别的关系,其中父容器可以看到子容器提供的信息

可以通过–name给容器命名(容器名称必须唯一)

  • 链接容器
    链接允许容器间安全通信,使用–link选项创建链接。例:sudo docker run -d –name db training/postgres,此命令基于 training/postgres 镜像创建一个名为 db 的容器,接下来:sudo docker run -d -P –name web –link db:db training/webapp python app.py创建了一个名为web的容器基于training/webapp镜像,并运行app.py,–link的用法是:–link name:链接到的容器名,这里与db进行链接,这将允许web容器访问db容器的信息

构建私有库

参考链接(http://blog.csdn.net/u012562943/article/details/52100538)

原创粉丝点击