小小千想和您聊一聊

当前位置: 首页> 技术分享> Docker基本使用与命令

Docker基本使用与命令

  一、什么是Docker?

  Docker是用Go语言开发一款虚拟化容器技术。可以将Docker简单理解成为一款轻量级的虚拟机。Docker通常有两个版本(EE版 - 收费 CE版 - 免费)

  为什么要学习Docker?

  在开发中我们经常会遇到这样的问题:我的代码在本地是好好的,为什么放到另一个环境上就跑不起来了呢?

  这时候就牵扯到了另一个因素环境。我们的开发环境受制很多因素,比如我用win或者mac os开发的,但是部署到了centos上面了,造成的环境影响。还有配置,数据库版本,等等一系列的问题。

  因为环境的不同,当运维拿到我们的代码的时候就会很头疼。所以急切的希望出现一种技术来统一这些环境。你开发就不要只提交代码给我了,把你的代码连着你的开发环境直接打包丢给我吧。或者说我来弄一套环境,你在我这上面开发。

  所以这时候docker就出现了,来解决我们这些一套环境的问题。

  虚拟机 VS Docker

  容量的区别:虚拟机会占用的空间比较大(GB),容器占用的空间比较小(MB)

  运行速度的区别:虚拟机启动通常是分钟级别,容器启动通常是秒级的

  Docker的架构图

  镜像:Docker 镜像是用于创建 Docker 容器的模板(类似Java中类)

  容器:基于镜像产生,容器是独立运行的一个或一组应用(类似Java中的对象)

  仓库:Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。

  Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。

  二、Docker安装

  1、安装前置环境

yum install -y yum-utils device-mapper-persistent-data lvm2

  2、安装docker的yum源

  、

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  3、yum安装docker-ce版

yum -y install docker-ce

  4、启动docker服务

systemctl start docker

  5、测试docker

docker run hello-world

#结果
Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/


  6、配置docker的镜像加速(阿里云加速、网易云加速)

  1)进入阿里云,选择容器镜像服务

  2)点击镜像加速器

  3)在centos上配置阿里云加速

  4)重启docker服务 - systemctl restart docker

  三、Docker的相关命令

  镜像的相关命令:

docker search xxx - 搜索远程docker仓库相关的镜像信息
docker pull xxxx - 拉取相关镜像
docker images - 查看本机所有下载好的docker镜像
docker rmi -f 镜像名称:tag/镜像id - 删除指定的镜像

  容器的相关命令:

docker ps -a - 查看所有容器(运行的和停止的)
docker run --name 容器的名称 -d -p 9090:8080 镜像的名称:tag/镜像的ID  - 根据镜像启动容器
    -d 容器后台运行
    -it 容器交互式运行
    -p 将宿主机的某个端口映射到容器内的指定端口
    --name 容器的名称
    -v 指定容器的数据卷
docker  rm -f  容器的名字/容器的id  -  删除指定容器
docker start/stop/restart 容器名称/容器的id
docker exec [-it] 容器名称/容器id [需要执行的命令] - 在指定容器中执行相应的命令
docker inspect 容器名称/容器id  - 查看容器的相关信息
docker cp /a 容器名称:/b   -  将宿主机中的指定文件拷贝到容器中的指定路径

  注意:如果一个容器启动后,主线程没有事情可以做,则会自动关闭

  四、docker容器数据卷

  什么是docker的容器数据卷?

  容器数据卷是docker数据持久化的一种方式

  容器数据卷的相关命令:

方式一:
    docker run ... -v 宿主机路径:容器路径 .....

方式二:
    通过dockerfile创建镜像时指定

方式三:
    docker run ... --volumns-from 容器a ....

  五、Docker镜像的制作

  1、通过容器逆向的生成镜像

docker commit 容器名称/id 新的镜像名称:tag  - 根据当前的容器创建一个新的镜像

  2、通过dockerfile创建镜像

什么是dockerfile? - 简单来说,DockerFile就是Docker的基本描述文件

dockerfile的参数解释:

FROM:表示指定基础镜像,必备的指令,并且必须是第一条指令

MAINTAINER(可选):指明该镜像的维护者和电子邮件。比如:MAINTAINER xxxx "xxxxx@qq.com"

ENV:设置环境变量。比如:EVN key1=value1 key2=value2...

RUN:在新镜像内部执行的命令,比如安装一些软件、配置一些基础环境,可使用\来换行。比如:RUN yum install -y mysql-server

COPY:将主机的文件复制到镜像文件中,如果目标位置不存在会自动创建。比如:COPY application.yml /etc/resources

ADD:和COPY一样,但是自带解压的功能

EXPOSE:暴露镜像的端口供主机做映射,可以暴露多个端口。比如:EXPOSE 8080

WORKDIR:在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录,而且在进入容器时,会默认定位到该路径下。

    比如:
    WORKDIR /usr/local
    WORKDIR tomcat
    RUN xxxxxx

VOLUME:用来向基础镜像中添加数据卷

    比如 VOLUME /root/mydata /root/condata

CMD:容器启动时需要执行的命令。

    比如 CMD /bin/bash

  通过dockerfile制作一个带有vim命令的centos镜像

1、创建Dockerfile文件

FROM centos

MAINTAINER ken ken@qq.com

RUN yum -y install vim

WORKDIR "/usr/local"

CMD "/bin/bash"

2、通过命令构造镜像

docker build -f [dockerfile文件名称] -t [新的镜像名称:tag] .


上一篇:如何真机测试web页面

下一篇:javascript中的常见的兼容写法

QQ技术交流群

千锋go语言官方①群
816085262

加入群聊

用户登录

手机号:

密码:

图形验证码:

点击切换

用户注册

手机号:

登录密码:

图形验证码:

点击切换

短信验证码:

获取验证码

忘记密码

1安全验证

2重置密码

手机号:

图形验证码:

短信验证码:

获取验证码

忘记密码

1安全验证

2重置密码

新密码:

确认新密码:

获取课程

添加小千老师微信,获取课程信息

如何获取课程?

一、需拥有此本教材

如没有,可点击下方入口购买当当购买入口京东购买入口

二、添加小千老师,发送拥有凭证,解锁课程资源

1.购买该教材的订单信息
2.拥有的实体书信息等

更换手机号

新手机号:

图形验证码:

短信验证码:

获取验证码