docker基础命令快速入门

Docker 简介

Docker 是一个开源的应用容器引擎,你可以将其理解为一个轻量级的虚拟机,开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。

基本概念

  1. 镜像: 一个包含了完成的操作系统以及一些完成应用的模板;
  2. 容器: 通过镜像实例化而来,有自己独立的空间、网络空间、文件空间等,基于镜像可以创建多个容器。每个容器都是完全隔离的。
  3. 仓库: 不是用来存放容器的,而是用来存放镜像的,可以是公共仓库也可以是私有的,docker官方的镜像hub.docker.com, 国内也有很多镜像仓库,例如网易、阿里云等。

主要用途

(1)提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
(2)提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。
(3)组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

常用命令

1. 通过Dockerfile构建镜像

编辑dockerfile文件,文件名称最好是Dockerfile,这样构建的时候不用指定 vim Dockerfile

		# FROM开头表示使用什么操作系统 可以是centos
		FROM alpine
		# 每一个RUN是一层,最多可以是127层
        RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
        RUN apk add  gcc g++ libc-dev  wget vim  openssl-dev make  linux-headers 
        # RUN的层级不宜过多,过多会臃肿执行时间长,且可能会出错,可以使用 && 开头 \ 结尾减少层级
        RUN mkdir -p /usr/src/redis
        RUN cd /usr/src/redis
        # 下载完的安装包应该及时 rm 删除掉,否则安装的包会非常大,应该在当前层删除,下一层删除无效。可以将缓存一起删掉
        RUN wget -O redis-4.0.11.tar.gz  "http://download.redis.io/releases/redis-4.0.11.tar.gz"
        RUN tar -xzf redis-4.0.11.tar.gz -C /usr/src/redis
        RUN cd /usr/src/redis/redis-4.0.11 &&  make && make PREFIX=/usr/local/redis install

2. 镜像基本指令

- 创建镜像
要在Dockerfile同级目录下创建 redis为要构建的镜像名称 v1 为标签,别忘记后面的.表示路径

	Docker build -t redis:v1 .

- 查看构建镜像的历史操作步骤
4193375bceea为镜像的ID,也可以使用镜像名称

	Docker history 4193375bceea

- 查看创建的镜像

	docker images

- 删除镜像

	# 删除1个镜像
	docker rmi 镜像名称/镜像ID
	# 删除所有镜像
	docker rmi $(docker images -q)

-导出镜像

	# 方式一:redis-master 容器名称  redis.tar 要导出的文件名称  包含了镜像和指定的容器内容,实际上导出的是容器,相当于是一个快照。
	#导出的文件小,无层级关系,没有历史操作,不可以回滚。
	docker export redis-master > redis.tar
	#方式二: redis:v1 镜像名称 redis.tar 要导出的文件名称 导出的是镜像 
	#导出的文件大,因为导出的文件是带历史的,有层级关系,可以用于回滚到某个历史层
	docker save redis:v1 > redis.tar

-导入镜像

	# redis.tar 要导入的镜像文件名称 redis:v2 要创建的镜像名称:标签 通过export导出时用
	docker import redis.tar redis:v2
	#redis.tar 要导入的镜像文件名称,通过save方式导出时用
	docker load < redis.tar

3.容器基本指令
-创建容器

	#redis-master 容器名称 redis:v2 自己构建的镜像名称,
	#如果不加v2,且本地没有构建过redis,则会从官方镜像中拉取最新版本的redis镜像
	#bash docker的运行机制,在构建容器的时候要求必须要有前台挂起的进程,官方的镜像不用加bash
	docker run -itd --name redis-master redis:v2 bash

-查看容器

	#查看所有容器
	docker ps -a
	#查看指定容器详细信息 redis_test 容器名称
	docker inspect redis_test

-运行容器

	docker exec -it redis-master bash

-停止容器

	#停止当前容器 redis-master 容器名称,也可以替换为容器ID
	docker stop redis-master
	#停止所有容器
	docker stop ($docker ps -a -q)

-删除容器

	#删除指定容器 redis-master 容器名称,也可以替换为容器ID
	docker rm redis-master
	#删除所有容器
	docker rm $(docker ps -a -q)

-退出容器

	exit

-查看容器日志

	#7454464e48c4 容器ID
	docker logs 7454464e48c4
容器网络

默认会创建3种网络类型:
桥接网络: bridge 默认容器使用的网络模式
无指定网络: --network=none 容器不分配局域网IP
主机网络: host ,使用–network=host ,宿主机端口地址自动映射到容器中。使用同一个端口

查看默认网络

	docker network ls

指定自定义网络
默认不能指定固定的网络地址,需要手动创建自定义网络,指定网段。并命名

	docker network create --subnet=192.168.1.0/24 mynetwork

指定地址创建容器

	# -V 为容器挂载目录
	docker run -itd --name redis-master --net mynetwork -p 6380:6379 --ip 192.168.1.2 -V /usr/local/docker/redis:/usr/redis redis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值