ITPub博客

首页 > 云计算 > > Docker入门实战

Docker入门实战

作者:浪花小雨滴 时间:2020-05-09 11:41:45 0 删除 编辑

今天打算在自己电脑上配置Caffe2, 然后官方只支持Docker Images进行安装,Docker这个词见过很多次了,一直不知道它是干什么的。今天参考CSDN上的博客进行一个入门实战的学习。原博客地址:

Docker_入门?只要这篇就够了!(纯干货适合0基础小白) - S_gy_Zetrov的博客 - CSDN博客​blog.csdn.net图标

SO, Docker是个什么东西?

Docker首先可以理解成一个轻量级的虚拟机,但不是虚拟机,实质为一个Container。它们之间的不同是Docker是在操作系统层面上实现虚拟化的,直接复用本地主机的操作系统,而传统的VM虚拟机则是在硬件层面上实现。优点就是启动速度快,资源利用率高,性能开销小。

通过Docker的Logo来解释的话,那条大鲸鱼就是操作系统,而上面的货物就是要部署的各种各样的货物,他们之间可能相互冲突,或者内存访问会有交叠,但Docker就是这样的机制让这些货物可以在同一空间下相互共存~~这就是典型的集装箱原理。

引用一个知乎答案:

Java号称“一次编译,到处运行”,因为java虚拟机解决平台的兼容性问题,所以有java虚拟机的地方就能跑java代码;
Docker是:“一次封装,到处运行”,因为docker决绝了应用环境的问题,安装了docker的平台就能跑“docker包”,这样就决绝了“开发环境能跑,一上线就崩”的尴尬。
这样就更加好理解它的用处了~~

Docker可以用来干什么?

简化部署,优化运维管理方案,现在互联网服务的架构日趋复杂,不同程序模块依赖的环境千奇百怪,使用的机器也越来越多,导致部署一套环境成本越来越高,而且还不便于管理和迁移。由于Docker是在操作系统级别的封装,因此可以把不同的程序分别打包成镜像,管理只需要管理这些镜像即可,上线时直接把image批量部署到线上多台服务器上,这样就特别方便了。这是官网上面的一句话:说明了他的价值

Developers use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers. Operators use Docker to run and manage apps side-by-side in isolated containers to get better compute density. Enterprises use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux, Windows Server, and Linux-on-mainframe apps.


Docker实战

CSDN原链接已给出,他是MAC机,我的运行环境是Windows~~

首先,注册DockerStore然后下载Docker Community Edition for Windows

Docker Store​store.docker.com

注意:注册账号时需要翻墙啊,不然注册不了的。

然后对其进行安装,安装步骤如下,需要开启一个windows服务才行。

Windows10下安装Docker的步骤图文教程_docker_脚本之家​www.jb51.net图标

接下来,安装完后进行测试docker。命令行输入:

docker vision //显示版本信息

至于怎么制作一个镜像文件,可以百度自行搜索。接下来就是如何获取别人的镜像文件?

1. 获取一个ubuntu的镜像

$ docker pull chug/ubuntu14.04x64
使用pull命令从别人的仓库去获取一个镜像,pull相当于拽的意思~~

2. 查看已经获取的本地镜像仓库

docker images

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
chug/ubuntu14.04x64 latest aaaa7bd9d11a 4 years ago 225MB

每个标签的意思分别是:

镜像的 ID 唯一标识了镜像,注意到 ubuntu:16.04 和 ubuntu:latest具有相同的镜像 ID ,说明它们实际上是同一镜像。 TAG 信息用来标记来自同一个仓库的不同镜像。例如 ubuntu 仓库中有多个镜像,通过 TAG 信息来区分发行版本,例如10.04 、 12.04 、 12.10 、 13.04 、 14.04 等。例如可以使用docker run -t -i ubuntu:16.04 /bin/bash命令指定使用镜像ubuntu:16.04来启动一个容器。如果不指定具体的标记,则默认使用latest标记信息。

3. 启动镜像并在上面安装软件

由于获取的镜像文件十分精简,所以我们接下来给其安装vim.

docker run -it chug/ubuntu14.04x64

$ docker run -it chug/ubuntu14.04x64 # 注意运行的是本地仓库
-it 表示运行在交互模式,是-i -t的缩写,即-it是两个参数:-i和-t。前者表示打开并保持stdout,后者表示分配一个终端(pseudo-tty)一般这个模式就是可以启动bash,然后和容器有命令行的交互可以看到我们终端的字头变成root@aa97ba3292ce:/#了,这就意味着我们的镜像已经创建了一个容器实例

4. 在这个容器中安装vim

apt-get install vim

$ apt-get install vim
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
file libexpat1 libffi6 libgpm2 libmagic1 libpython2.7 libpython2.7-minimal libpython2.7-stdlib libsqlite3-0
libssl1.0.0 mime-support vim-common vim-runtime
Suggested packages:
gpm ctags vim-doc vim-scripts
The following NEW packages will be installed:
file libexpat1 libffi6 libgpm2 libmagic1 libpython2.7 libpython2.7-minimal libpython2.7-stdlib libsqlite3-0
libssl1.0.0 mime-support vim vim-common vim-runtime
0 upgraded, 14 newly installed, 0 to remove and 0 not upgraded.
Need to get 10.7 MB of archives.
After this operation, 50.7 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y

5. 容器操作

exit命令用于推出容器操作

docker ps // 用于查看容器,第一个序列为容器ID

C:\Users\Teddyzhang>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
84f4291c7f60 chug/ubuntu14.04x64 "/bin/bash" 21 seconds ago Up 20 seconds nostalgic_noether

docker start 84f4291c7f60 // 启动docker

docker stop 84f4291c7f60 // 停止docker

docker restart 84f4291c7f60

docker attach 84f4291c7f60 // 用于启动后台运行的docker

6. 删除容器或者镜像

docker rm container_id // 本例中为84f4291c7f60

docker rmi image_id // 删除镜像

注意:删除镜像之前要先删除以此镜像为基础的容器,否则会报错~~

7. 把整个容器放到HUB上

HUB就相当于是一个中转站,当这个东西在其他类型电脑上使用时,可以用自己的HUB直接pull, 然后去做实验,接着再push回去,一切就可以了~~十分方便

docker login

docker push teddy/ubuntu:vim //把整个环境push到HUB中

注意:一定要在使用之前进行docker login, 否则会出现denied: requested access to the resource is denied的错误信息。

接下来就是换一台机器的话,就只需要把docker下载下来然后自己接着pull整个环境就好了。非常NICE的东西~~

登陆到Docker官网,就可以看到我们push的开发环境,从而实现了“一次配置,到处使用“的好处。

https://hub.docker.com/​hub.docker.com

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3164072/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Docker Dockerfile
请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    40024