Docker入门

Docker的入门

docker是什么

  • Docker是一个能够把开发的应用程序自动部署到容器的开源引擎。由 Docker Inc. 公司 前 dotC1oud公司, PaaS市场中的老牌提供商)的团队编写,基于 Apache 2.0开源授权协议发行。

解决了什么问题

  • 对于开发人员来说,提供了一套隔离环境,如果有刚入职的小伙伴就不用为搭建环境而操心了
  • 对于运维人员来说,可以通过镜像(稍后再说可以理解为一个个版本),更高效的发布一个个过的版本
  • docker里包含了完整的运行环境和执行程序,可以不用关系服务器本身的环境
  • docker启动时间非常快,通常是秒级的

下面介绍下基本概念

镜像(images)

image就是一个个集成的环境,一般包含了OS和一些其他的应用程序,一个image可能包含多个layer,可以理解为千层饼这中层叠起来的东西,这些layer都是只读的。

创建镜像方式
  • 通过写dockerfile来生成镜像,比较常用
  • 可以把停止的容器打包成一个镜像
容器

可以理解为一个个运行的某个镜像,它其实是在镜像最上层添加了一层可写层,有兴趣的话可以去了解下。这里就不详细介绍了。。

registry

这是一个仓库的概念,可以保存用户构建的镜像,也可以从上面拉去镜像,现在很多公司有镜像仓库,Docker公司运营的Docker hub比较常用,因为是国外的服务器,下载速度非常慢,使用的话需要配加速器(可以自己在网上找别的文章配置)

下面就介绍一些常用的命令

镜像下载(默认是去docker hub上下载)

$ docker pull name:tag

查看所有镜像

$ docker images

运行一个image,也就是创建一个容器
-it表示交互式和启动一个终端
–name表示为容器起的名字
-p表示宿主机端口映射到容器中的端口

$ docker run -it -p 8080:8080 --name app name:tag /bin/bash 

查看所有容器

$ docker ps -a

进入容器中

$ docker attach container_name
或者
$ docker exec -it container_name /bin/bash

停止容器

$ docker stop container_name

删除容器(只能是已经停止的)

$ docker rm container_name

删除镜像

$ docker rmi imgae_id

提交修改的镜像(也就是把容器再打为一个镜像)

$ docker commit container_name image:tag

使用dockerFile构建镜像
文件名必须为Dockerfile
.表示当前目录

$ docker build -t image:tag .
编写dockerfile时常用命令

From命令
必须以FROM命令开始
表示依赖哪个镜像

$ FROM java:8

run命令相当于shell命令
每个RUN命令会产生一个新的layer层

$ RUN useradd name
$ RUN mkdir -p /home/name/app

WORKDIR
相当于切换工作目录

$ WORKDIR /home/name/app

ADD
相当于复制文件到容器中

$ ADD app.jar /home/name/app.jar

EXPOSE
暴露端口

$ EXPOSE 8080
$ EXPOSE 3306

好了一些基本的命令就介绍到这了,更详细的可以去官网上看。
Docker入门的一些就讲到这了。小伙伴们下期再见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值