docker常用命令

一,镜像管理指令

指令 描述
ls

列出镜像

build

构建镜像来自Dockerfile

history

查看镜像历史

inspect

显示一个或者多个镜像详细信息

pull

从镜像仓库拉去镜像

push

推送一个镜像到镜像仓库

rm

移除一个或多个镜像

prune

移除未使用的镜像。没有被标记或被任何容器引用的

tag

创建一个引用源镜像标记目标镜像

export

导出容器文件系统到tar归档文件

import

导入容器文件系统tar归档文件创建镜像

save

保存一个或多个镜像到一个tar归档文件

load

加载镜像来自tar归档或标准输入

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

案例:

docker  image  save nginx:1.11 > nginx1.11.tar    #导出镜像为tar包
docker load <  nginx1.11.tar   #导入镜像
docker  ps  #查看运行中容器
docker run -itd busybox   #运行镜像,就变成一个运行中的容器
docker   export 6hidudiiwdudw  > bug.tar  #导出容器文件系统到tar归档文件
docker image import bug.tar  name:tag   #导入容器文件系统归档tar文件创建镜像

二,创建容器常用指令

指令 描述 资源限制指令 描述
-i, --interactive 交互式 -m, memory 容器可以使用的最大内存量
-t, --tty 分配一个伪终端 --memory-swap 允许交换到磁盘swap分区的内存量
-d, --detach 容器后台运行 --memory-swappiness=<0,100> 容器使用swap分区交换的百分比,(0,100,默认为-1)
-a, --attach list 附加到运行的容器 --memory-reservation 内存限制,docker检测主机容器争用或占内存不足时所激活的软限制,使用此选项,值必须低于--memory,以使其优先
--dns list 设置DNS服务器 --00m-kill-disable 当宿主机内存不足时,内核会杀死容器中的进程,建议设置了--memory选项在禁用00m。如果没有设置,主机可能会耗尽内存
-e, --env list 设置环境变量 --cpus 限制容器可以使用多少可用的cpu资源
--env-file list 指定环境变量文件,文件格式为每行一个环境变量 --cpuset-cpus 限制容器可以使用的特定cpu
-p, --publish list 发布容器端口映射到宿主机 --cpu-shares 此值设置为大于或小于默认的1024倍,以增加或减少容器的权重,并使其可以访问主机cpu周期的更大或更小比例
-P, --publish-all 发布容器所有EXPOSE的端口到宿主机随机端口    
-h, --hostname string 设置容器主机名    
--ip string 指定容器IP,只能用于自定义网络    
--link list 添加到另一个容器    
--network 连接容器到一个网络    
--mount mount 挂载宿主机分区到容器    
-v, --volume list 挂载宿主机目录到容器    
--restart string 容器退出时重启策略,默认为no【always|on-failure】    
--add-host list 添加其他主机到容器中/etc/hosts    

案例:

docker [container]  run -itd --name bs busybox  #用busybox这个镜像创建一个交互式+伪终端+后台运行名字叫做bs的容器; 【】里面这个指令可以省略
docker  ps
docker [container] attach bs  #进入容器,类似一个linux系统,正常退出终端后这个容器也同时退出了,如果不想这样就按Ctrl+p+q退出
docker start bs   #启动停止了的容器
docker container run -itd -e a=113 --name bs1  bug  #用bug这个镜像创建一个容器,同时传递一个变量进去
docker exec -it bs1 sh   #进入容器的另一种方法,这种方法可以直接退出,不会关闭容器
/#ls
bin dev etc ....
/#echo $a    
123               #变量已经传递进来了
docker [container] run -itd -p 8080:80 --name nginx01  nginx  #启动容器,并把容器的80端口映射给主机的8080端口
docker ps  #可以查看到映射关系
docker logs nginx01  #查看容器内部日志
ls  /var/lib/docker/containers/ehduihdbdw(容器ID命名目录)/   #主机上容器日志地址,里面会有个日志,内存大的时候要主要清理

 -p重要扩展

-p(小写)可以指定要映射的IP和端口,但是在一个指定端口上只可以绑定一个容器。支持的格式有 hostPort:containerPort、ip:hostPort:containerPort、 ip::containerPort。

#将本地的 6000 端口映射到容器的 5000 端口;hostPort:containerPort(映射所有接口地址)
$ sudo docker run -d -p 6000:5000 training/webapp python app.py 

#指定映射使用一个特定地址,
比如 localhost 地址 127.0.0.1;ip:hostPort:containerPort (映射指定地址的指定端口)
$ sudo docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py 

#绑定 localhost 的任意端口到容器的 5000 端口,本地主机会自动分配一个端口;ip::containerPort (映射指定地址的任意端口)
$ sudo docker run -d -p 127.0.0.1::5000 training/webapp python app.py 

#还可以使用 udp 标记来指定 udp 端口
$ sudo docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py 

#使用 docker port 来查看当前映射的端口配置,也可以查看到绑定的地址
$ docker port nostalgic_morse 5000   
127.0.0.1:49155.

#-p 标记可以多次使用来绑定多个端口
$ sudo docker run -d -p 5000:5000 -p 3000:80 training/webapp python app.py

 

 

 

 

 

 

 

l

你可能感兴趣的:(docker常用命令)