python_new
  • Introduction
  • First Chapter
  • 一、python基础
    • 1.1 常识
      • sys
    • 1.2 基础语法(1)
    • 1.2 基础语法(2)
    • 1.3 常见问题求解
    • 1.4 算法
  • 二、爬虫
    • urllib库(1)
      • urllib库(2)
    • requests模块(1)
      • requests模块(2)
    • 2.1 爬虫基础(3)HTTP原理
    • 2.1 爬虫基础(4)会话和Cookies
    • 2.1 爬虫基础(5)数据存储
      • Mysql存储
      • MongoDB存储
      • Redis存储
    • 2.3 正则表达式
    • 2.4 解析库lxml
      • BeautifulSoup
      • pyquery(1)
      • pyquery(2)
    • 2.5 selenium(1)
    • 2.5 seleium(2)
    • 2.6 Json
    • 2.7 scrapy
      • scrapy(2)
    • 2.9 异步加载
    • 2.6 Splash
  • ORM框架
    • SQLAlchemy
  • Django
    • 1、初阶(一)
    • 初学:投票教程(一)
    • 初学:投票教程(二)
    • 初学:投票教程(三)
    • 初学:投票教程(总结)
    • 模型(一)
    • 模型(二)
    • 视图(一)
    • 视图(二)
    • 模板(一)
    • django实际使用笔记
  • 面试题收集总结
    • 数据结构原理
    • 算法篇
      • 排序
    • 题目篇
  • python数据分析
    • 基础了解(一)
    • 基础了解(二)
    • 基础了解(三)
  • 多线程
  • 深度学习
    • 疑问
  • keras(一)
  • 神经网络
  • 图像识别
  • Docker
    • 一、基础了解
Powered by GitBook
On this page
  • 一、应用场景
  • 二、docker的优点
  • 三、Docker架构
  • 四、ubuntu安装docker
  • 五、开始了解

Was this helpful?

  1. Docker

一、基础了解

一、应用场景

  • web 应用的自动化打包和发布

  • 自动化测试和持续集成、发布

  • 在服务型环境中部署和调整数据库或其他的后台应用

目前接触的是第三种

二、docker的优点

1、 简化程序 可以打包应用以及依赖到一个可移植的容器中,然后发布到任何流行的linux机器上,以实现虚拟化。也可以通过docker管理内部的 程序,方便快捷。

2、避免选择恐惧症(???) docker可以部署多种应用实例,比如web应用、后台应用、数据库应用、大数据应用、hadoop集群、消息队列等

3、节省开支 节省云空间

三、Docker架构

docker 使用客户端-服务器(C/S)架构模式,通过远程api来管理和创建docker容器;docker容器通过docker镜像来创建,两者 类似与类和对象的关系。

此处图片

  • images: docker镜像,用于创建docker容器的模板

  • container: 容器是独立运行一个或一组应用

  • client: docker客户端, 通过命令行或其他工具使用docker API与docker守护进程通信

  • host: docker主机, 一个物理或虚拟的用于执行docker守护进程和容器的机器

  • registry: docker仓库,用来保存镜像,如同代码仓库

  • docker machine: 简化docker安装的命令行工具

四、ubuntu安装docker

1、 根据菜鸟教程安装,报错

# Executing docker install script, commit: 26dda3d
+ sudo -E sh -c apt-get update -qq >/dev/null
+ sudo -E sh -c apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
E: Sub-process /usr/bin/dpkg returned an error code (1)

2、尝试官方文档方案安装

Docker CE: 社区版,免费 Docker EE: 企业版, 收费

基本没什么问题,就是下载速度有点慢。。。 安装完成!

我发现官方文档写的很好,先不看菜鸟教程了

五、开始了解

1、 查看docker版本

$ docker --version
Docker version 18.09.2, build 6247962

2、 查看更多docker信息

$ docker info

3、运行hello-world

$ docker run hello-world

这里报错了,问度娘之后,原来是墙的原因,翻墙倒是没问题,但是现在用的不是我的电脑,而且也不可能以后都用我的vpn,所 以看看如何使用国内镜像。

方法一: 修改/etc/docker/daemon.json

上次配置完之后,运行'hello-world'成功了,但是后来关闭了命令行界面,再次打开时却不能运行, 好像是因为docker服务已经关闭了,也要说是因为配置的问题,搞了一会儿没成功。

# 使配置生效
systemctl daemon-reload
# 启动docker服务
service docker start

然后运行之前的命令

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/

成功显示!

# 关闭docker服务
service docker stop

4、Dockerfile

这次是教程的第二部分,利用Dockerfile创建了一个镜像,我之前还以为Dockerfile是自动生成的,现在 看是手写的。 首先创建目录app,以及三个文件,Dockerfile, app.py, requirements.txt,具体可 以看文档。

然后创建镜像

docker build --tag=friendlyhello .

查看镜像列表

$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
friendlyhello       latest              a8cde448a919        8 minutes ago       131MB
python              2.7-slim            413ee88c678e        2 weeks ago         120MB
hello-world         latest              fce289e99eb9        7 weeks ago         1.84kB

怎么多了一个python的镜像?

运行app

# -p 把机器的4000端口和容器的80端口连在一起
docker run -p 4000:80 friendlyhello

接下来,在后台运行app

# -d 代表后台运行
docker run -d -p 4000:80 friendlyhello

使用命令查看

$ docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
c7520f7d9f2b        friendlyhello       "python app.py"     33 seconds ago      Up 32 seconds       0.0.0.0:4000->80/tcp   friendly_easley

可以看到确实正在运行,当然网页也可以继续访问

停止运行

# 从上面得到id
docker container stop c7520f7d9f2b

后面的部分是把自己的镜像上传到私人仓库,然后演示如何在其他机器上运行。但是首先我还没有注册官方账号, 其次,我也没有第二个机器可以测试,不对,好像还有一个可以用,但是打不开官方网址,需要翻墙,等我稍后 回去再注册一个。

PreviousDocker

Last updated 6 years ago

Was this helpful?

官方教程:

中文教程:

这里要注意,如果你不是root的话,会报错权限不足,这时有两个选择,其一是使用su切换到root,其二是将该账号加入group, 具体可以查看文档

但是文件不存在,查询后发现默认是没有这个文件的,要自己配置,

解决方法: 果然还是配置文件的问题,按照上面文档修改之后

打开 成功显示

https://docs.docker.com/install/linux/docker-ce/ubuntu/
https://www.cnblogs.com/lighten/p/6034984.html
https://docs.docker.com/install/linux/linux-postinstall/。
https://blog.csdn.net/u013948858/article/details/79974796
https://www.cnblogs.com/huhyoung/p/9495956.html
http://localhost:4000,