docker常用命令

命令

选项

说明

示例

Sudo systemctl start docker

启动docker

sudo systemctl status docker

查看docker状态

Docker images

-a

-q

查看所有镜像

docker search 镜像tag

搜索仓库中的镜像,相当于网页搜索 (http://hub.docker.com)

(不同与mavendocker只有一个仓库,没有本地仓库,但是有本地镜像)

docker pull镜像名:版本号

下载mysql镜像(默认lastest版本)

docker pull mysql:5.7

docker rmi -f id(name)

删除一个镜像(-f:删除所有镜像)

docker rmi -f id id id

docker rmi -f $(docker images -aq) # images -aq就是查所有镜像id,从而递归删除

docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

提交容器成为一个新的副本(本地镜像)

Tag就是版本(进入容器进行一些修改,然后将其保存为新的副本)

docker run [可选参数] image名

--name=“Name” # 容器名字,用于区分容器

-d 后台方式运行

-it 使用交互方式运行,进入容器查看内容

-v:容器卷;

-e: 环境配置(比如:安装启动mysql需要配置密码)

-p 指定容器的端口 如-p 8080::8080

       -p ip:主机端口:容器端口

       -p 主机端口:容器端口

       -p 容器端口

      

-p 随机指定端口

新建容器并启动

通过主机端口,可以访问到容器端口

以交互的方式来运行,就可以进入和退出。

以后台的方式运行的时候,docker ps查看不到

docker run -d centos /bin/sh -c "while true;do echo shenzai;sleep 1;done"

运行容器,并在里面及一个shell脚本

docker run -it centos

进入容器,然后就可以输入容器可以识别的命令。比如:centos容器:ls当命令来查看容器内部;tomcat容器就可以cd webapps

Exit:退出容器

docker ps[选项]

-a:查看曾经运行的容器

-q:只显示容器号

查看正在运行的容器

exit

Ctrl + P + Q

exit # 容器停止退出

Ctrl + P + Q

# 容器不停止退出 注意必须在英文输入法下,中文输入法不行

docker rm 容器id

# 删除指定容器 不能删除正在运行的容器,如果强制删除 rm -f

$(docker ps -aq)

:# 删除所有容器

docker rm -f

docker start容器id

docker restart容器id

docker stop容器id

停止当前运行的容器

docker kill容器id

强制停止当前运行的容器

docker logs 【option】容器id

docker logs -f -t --tail n 【id】

-f :日志的格式;

-t:时间戳显示;

--tail :显示

查看容器日志

docker inspect容器id

查看正在运行的容器内部信息(包括容器里面运行的脚本、配置等信息)

docker exec -it 容器id bashSHELL

(bashshell:默认的一个命令行工具)

(bashshell也可以换成其它的命令,比如:ip addr,就是启动时执行的命令)

进入当前正在运行的容器(Ctrl + P + Q

后再次进入容器;或者后台方式运行的容器)

进入容器后开启一个新的终端,可以在里面操作

docker exec -it tomcat01 ip addr, 发现容器启动的时候得到一个eth0@if115 ip地址,docker分配的!

docker attach容器id

进入当前正在运行的容器(进入容器正在执行的终端,不会启动新的进程)

docker cp 容器id(容器名)/路径 主机路径

从容器内拷贝文件到主机上(或者反方向)

docker cp 0569081aa89c:/home/test.java /home

docker stats

查看内容占用

docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

提交容器成为本机的一个镜像

docker commit -a="paidaxing" -m="add webapps app" 当前容器的id tomcat02:1.0

docker run -it -v 容器外目录:容器内目录 镜像名

数据卷的挂载命令(多个目录挂载,用多个-V)

-v 容器内路径(匿名挂载,生成一串字符作为卷名);

-v 卷名:容器内路径(具名挂载,有默认的存放目录)

-v /宿主机路径:容器内路径(指定路径挂载)

docker run -d -p 3310:3306 -v /home/test:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql

Docker volume ls(list)

查看所有的数据卷(可以看得到卷名:volume name,就是-v的时候指定的名字,如果没有指定就是默认的一串数字)

Docker volume inspect 卷名

查看卷的详细信息(有挂载路径)

docker build -f 文件名 -t镜像的名字: tag

通过写dockerfile脚本创建镜像(可以在脚本里面指定挂载)

docker build -f dockerfile1 -t padaxing/centos:1.0 .  # 最后的点很重要 镜像名不能有/

docker run -it --name 容器名 --volumes-from 挂载的容器名j镜像名:tag

在启动时将新启动的容器挂载在另一个数据卷容器上,可以实现容器间数据共享

docker run -it --name docker02 --volumes-from docker01 padaxing/centos:1.0

docker push

发布镜像到本地,之后就都可以使用这个镜像来创建出新的容器了。

docker history 镜像id

可以通过查看docker构建历史(镜像是怎么一步一步构建起来的)

docker push本地镜像名 注册用户名/发布镜像名:tag

发布自己的镜像到Docker Hub。(发布前要先docker login -u 用户名 登录一下

docker push diytomcat 1234/tomcat:1.0

Docker save

把镜像打包成jar,发给别人使用。

Docker load

解压jardocker镜像

Docker network  ls

查看容器中的网络

Docker network inspect 网络id(网络名)

查看一个网络的配置,包括:驱动、子网掩码、网关等

docker network inspect mynet

         

docker exec -it启动容器名 ping 连接容器的网络ip

进入容器,并连接另一个网络。

docker run -d -P  --name 启动容器名 --link 连接容器名 启动镜像名

在容器启动的时候,通过容器名实现容器间的连通。

之后就可以通过容器名的方式ping了。

docker run -d -P  --name tomcat03 --link tomcat02 tomcat

docker exec -it tomcat03 ping tomcat02

docker network create --driver 驱动方式 –subnet 子网掩码 --gateway 网关 定义网络名

自定义网络

subnet定义了可以为网络中容器分配的ipgateway是网络中容器通信的桥梁

在自定义网络中ping的时候,可以直接通过容器名

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

docker run -d -P --name 容器名 --net 网络名 镜像名

在自定义网络中启动一个容器

docker run -d -P --name tomcat-net-02 --net mynet tomcat

docker network connect  要连接的网络名 容器名

将容器也放在新放的网络下,这样该容器就可以直接访问新的网络下的容器了。

docker network connect  mynet tomcat01

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值