Docker常用命令

 

总的来说分为以下几种:

  docker [run|start|stop|restart|kill|rm|pause|unpause]             #容器生命周期管理
  docker [ps|inspect|top|attach|events|logs|wait|export|port]       #容器操作运维
  docker [commit|cp|diff]                                           #容器rootfs命令
  docker [login|pull|push|search]                                   #镜像仓库
  docker [images|rmi|tag|build|history|save|import]                 #本地镜像管理

1、镜像

搜索镜像:

docker search 镜像名称

拉取镜像:

  docker pull image_name
  docker pull image_name:tag
  #image_name:表示镜像的仓库源名称,TAG:镜像的标签 如果不指定tag 那么默认用最新的

删除镜像:

docker rmi 镜像名称/镜像ID
docker rmi -f 镜像名称/镜像ID
#强制删除 如果镜像有容器在运行 那么就需要强制删除 增加 -f 参数

2、容器命令

docker run  #首先会从本地找镜像,如果有则直接启动,没有的话,从镜像仓库拉起,再启动)
docker run -d --name "rabbitmq-test" -p 5672:5672 -p 15672:15672 rabbitmq:management
    	    #-d 后台运行
			#-p 端口映射 (可以有多个 因为该镜像可能存在多个端口)
			#rabbitmq:management  (格式 REPOSITORY:TAG),如果不指定tag,默认使用最新的
			#--name  给该容器取个名字

查看当前允许的容器

docker ps

检查容器内部信息

docker inspect 容器名称

停止/启动/移除某个容器

docker stop 容器名称
docker start 容器名称
docker rm 容器名称   #容器必须是停止状态,若强制删除使用 -f 参数

创建容器常用选项:

容器资源限制:

示例:

内存限额:

#允许容器做多使用500M内存和100M的swap,同时禁用OOM KILLER
docker run -d --name nginx-test --memory="500m" --memory-swap=“600m" --oom-kill-disable nginx

CPU限额:

#允许容器最多使用两个半多CPU
docker run -d --name nginx-test --cpus="2.5" nginx
#允许容器最多使用50%的CPU:
docker run -d --name nginx-test --cpus=".5" nginx

持久化卷相关:

docker有三种方式将数据从宿主机挂载到容器中:

(1)volume:  docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)。保存数据的最佳方式。

(2)bind mount: 将宿主机上任意的文件活着目录挂在到容器中。

(3)tmpfs: 挂载存储在主机系统的内存中,而不会写入主机的文件系统。若不希望将数据持久化到任意到一个地方,可以使用该方式,同时避免了写入容器可写层提高了性能。

(1)volume

管理卷:

docker volume create nginxVol   #创建
docker volume ls  #查找当前到volume
docker volume inspect nginxVol #查看nginxVol信息

用卷创建一个容器:

docker run -d --name=nginx-test --mount src=nginx-vol,dst=/usr/share/nginx/html nginx

#或者使用下面到写法
docker run -d --name=nginx-test -v nginx-vol:/usr/share/nginx/html nginx

清理:

docker stop nginx-test
docker rm nginx-test
docker volume rm nginx-vol

PS: 若没有指定卷,则会自动创建

volume特点:

       多个运行容器之间共享数据,多个容器可以同时挂载相同的卷

       当容器停止或者移除时,该卷扔存在;当明确删除卷时,卷才会被删除  (docker volume rm 卷名称)

       将容器当数据存储在远程主机或其他存储上

       将数据从一台docker主机迁移到令一台时,先停止容器,然后备份卷到目录(/var/lib/docker/volumes/)     

(2)bind mount

用卷创建一个容器:

docker run -d --name=nginx-test --mount type=bind,src=/app/bindTest,dst=/usr/share/nginx/html nginx
#或者使用下面到方式
docker run -d --name=nginx-test -v /app/bindTest:/usr/share/nginx/html nginx

PS: 若源文件/目录不存在,则不会自动创建,会抛出一个错误。另外若挂载目标在容器中为非空目录,则该目录现有内容将被因此,但是上面(1)volume在这种情况下会直接覆盖。

bind mount特点:

      从主机共享配置文件到容器。末日情况下,挂载主机/etc/resolv.conf到每个容器,提供DNS解析。

      在docker主机上到开发环境和容器之间共享源代码,比如:可以将Maven target目录挂载到容器中,每次在docker主机上构建Maven项目时,容器可以访问构建到项目包。

     

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值