Docker命令集锦

  • A+
所属分类:Docker
Docker命令集锦

docker pull 镜像名称

通过命令下载dockerhub上的官方镜像

例:docker pull centos

docker push username/repository:tag

发布镜像

例:docker push helloworld/repository:hello

docker images

查看当前宿主机的所有镜像

docker images ubuntu

根据仓库名列出镜像

docker images ubuntu 14.04

指定仓库名和标签

docker start 容器名称(或容器ID)

启动容器

例: docker start redis:3.2(或容器ID)

docker restart 容器名称(或容器ID)

重启容器

例: docker restart redis:3.2(或容器ID)

docker stop 容器名称(或容器ID)

停止容器

例: docker stop redis:3.2(或容器ID)

docker attach 容器名或id

进入容器并操作

docker build -t webservice .

表示使用当前目录下的DockerFile来生成镜像,-t参数的值表示镜像的tagname,如果DockerFile在当前路径下则使用.,如果不在当前路径下则使用相对路径。

例:docker build -t helloworld .

docker run -idt -p 2222:22 --name base centos7.1 /bin/bash

表示根据指定的镜像后台运行容器,容器的名字是base(--name就是指定容器的名称),centos7.1表示镜像的名字。

-i参数表示打开STDIN,用于控制台交互。

-d参数指定容器运行与前台还是后台。

-t参数分配tty设备,可以支持终端登录。

-p参数表示当前宿主机的2222端口对应容器的22端口。

以/bin/bash命令进入。

docker ps -a

没有-a参数表示显示当前宿主机的正在运行的容器,加上-a表示显示当前宿主机的所有容器,包括已经退出的容器。

docker exec -it base /bin/bash

以交互式命令进入base容器并且执行/bin/bash命令。

exec Run a command in a running container(在运行的容器中运行命令)

exec -i: --interactive(相互作用的) Keep STDIN open even if not attached(即使没有连接,也要保持STDIN打开)

exec -t:--tty Allocate a pseudo-TTY(分配一个 冒充的终端设备)

例:docker exec -it 6654bc /bin/bash

docker rmi webservice

删除webservice镜像

例:docker rmi 容器id

docker rm base

删除base容器,如果base正在运行,则可以使用docker rm -f base 进行强行删除

例:docker rm 容器id

docker commit -a "runoob.com" -m "my apache" 容器名称或id 打包的镜像名称:标签

将容器打包成镜像

-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

-m :提交时的说明文字;

-p :在commit时,将容器暂停。

docker save -o helloworld.tar.gz 镜像名称

docker镜像导出,tar镜像可以进行拷贝

例:docker save -o helloworld.tar.gz helloworld

docker load -i helloworld.tar.gz

docker镜像下载

例:docker load -i helloworld.tar.gz

docker cp /home/admin/test.txt mysql-name:/home/admin/mysql/data

docker文件复制,复制宿主机上的文件到容器具体目录下。 mysql-name为容器名称,/home/admin/mysql/data/为需要将文件拷贝在容器的路径地址。

docker inspect 容器名称或者容器id 获取容器/镜像的元数据

-f :指定返回值的模板文件。

-s :显示总的文件大小。

-type :为指定类型返回JSON。

例:docker inspect mysql

例:docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql 运行mysql的ip

例:docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -q) 获取运行容器的所有ip

例:docker inspect --format='{{.Name}}' $(docker ps -aq) 获取运行容器的名称

例:docker inspect --format '{{ .Config.Hostname }}' `docker ps -q`或 docker inspect --format '{{ .Config.Hostname }}' $(docker ps -q) 获取容器HostName

例:docker inspect --format 'Hostname:{{ .Config.Hostname }} Name:{{.Name}} IP:{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -q) 获取Hostname Name IP

说明:对应格式为 一级属性{{.属性}} 二级属性 {{.属性.属性}} 三级属性 {{.属性.属性.属性}}

docker logs -f 容器名称或者容器id 查看某个容器启动日志

例:docker logs -f redis

docker network ls 查看网络情况

例:docker network ls

docker network create Docker创建自定义网络信息

例:docker network create --driver bridge --subnet=172.16.12.0/16 --gateway=172.16.1.1 mynetwork

--driver: 管理网络的驱动程序(默认“网桥”)。

--subnet: 表示网段(默认值为[])

--gateway: 主子网的IPv4或IPv6网关(默认值为[])

mynetwork 网段名称

docker使用root用户登录容器

docker exec -it --user root containerId /bin/bash

  • 我的微信
  • 加好友一起交流!
  • weinxin
  • 微信公众号
  • 关注公众号获取分享资源!
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: