今年加拿利海枣种子价格便宜吗?

小说:今年加拿利海枣种子价格便宜吗?作者:杜丁侯更新时间:2019-04-19字数:34472

1 Docker概述

Docker和虚拟机一样,都拥有环境隔离的能力,但它比虚拟机更加轻量级,可以使资源更大化地得到应用。首先来看Docker的架构图:

理解其中几个概念:

  • Client(Docker客户端):是Docker的用户界面,可以接受用户命令(docker build,docker pull...)和配置标识,并与Docker daemon通信
  • Images(Docker镜像):是一个只读模板,含创建Docker容器的说明,它与操作系统的安装光盘有点像
  • Containers(容器):镜像的运行实例,镜像与容器的关系类比面向对象中的类和对象
  • Registry:是一个集中存储与分发镜像的服务。最常用的Docker Registry是官方的Docker Hub

2 Docker安装

Linux下安装Docker

sudo wget -qO- https://get.docker.com/ | sh
sudo usermod -aG docker $USERNAME
#使得非root用户也可以运行docker命令

更详细的针对各操作系统的安装见官方文档:https://docs.docker.com/install/

3 Docker常用命令

3.1 镜像常用命令

1)搜索镜像

可以在Docker Hub主页上搜索镜像,可以通过docker search命令搜索,如:

docker search [OPTIONS] TERM

OPTIONS说明:

  • --automated : 只列出 automated build类型的镜像;
  • --no-trunc : 显示完整的镜像描述;
  • -s : 列出收藏数不小于指定值的镜像。
[root@localhost hemi]# docker search -s 20 tomcat
INDEX       NAME                                      DESCRIPTION           STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/tomcat                          Apache Tomcat is...   1757      [OK]       
docker.io   docker.io/dordoka/tomcat                  Ubuntu 14.04, Or...   48                   [OK]
docker.io   docker.io/tomee                           Apache TomEE is ...   47        [OK]       
docker.io   docker.io/davidcaste/alpine-tomcat        Apache Tomcat 7/...   24                   [OK]

其中,

STARTS:镜像仓库收藏数

AUTOMATED:表示是否是自动构建的镜像仓库

2)下载镜像

docker pull [OPTIONS] NAME[:TAG]

OPTIONS说明:

  • -a :拉取所有 tagged 镜像 
  • --disable-content-trust :忽略镜像的校验,默认开启

举个栗子

docker pull java   #从Docker Hub中下载最新版本的Java镜像
docker pull reg.itmuch.com/java:8    #从指定Registry中下载标签为8的Java镜像

3)列出镜像

docker images [OPTIONS] [REPOSITORY[:TAG]]

OPTIONS说明:  

  • -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
  • --digests :显示镜像的摘要信息
  • -f :显示满足条件的镜像;
  • --format :指定返回值的模板文件;
  • --no-trunc :显示完整的镜像信息;
  • -q :只显示镜像ID。

举个栗子:

列出本地镜像中REPOSITORY为ubuntu的镜像列表

[hemi@localhost ~]$ docker images ubuntu
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/ubuntu    latest              0458a4468cbc        7 weeks ago         111.7 MB
docker.io/ubuntu    15.10               9b9cb95443b5        20 months ago       137.2 MB

4)删除本地镜像

docker rmi [OPTIONS] IMAGE [IMAGE...]

OPTIONS说明:  

  • -f :强制删除;
  • --no-prune :不移除该镜像的过程镜像,默认移除;

3.2 容器常用命令

 1)新建并启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

 OPTIONS说明(常用):

  • -d: 后台运行容器,并返回容器ID;
  • --name="nginx-lb": 为容器指定一个名称;
  • -i:以交互模式运行容器,通常与 -t 同时使用;
  • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • -P: 随机端口映射;
  • -p: 指定端口映射,有以下四种格式
    • ip:hostPort:containerPort
    • ip::containerPort
    • hostPort:containerPort
    • containerPort
  • --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container:<name|id> 四种类型;

 如:

docker run --name mynginx -d nginx:latest
#使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。

docker run -p 91:80 -v /data:/data -d nginx:latest
#使用镜像nginx:latest以后台模式启动一个容器,将容器的80端口映射到主机的91端口,主机的目录/data映射到容器的/data。

[hemi@localhost ~]$ docker run -it nginx:latest /bin/bash 
root@b8573233d675:
/#
#使用镜像nginx:latest以交互模式启动一个容器,在容器内执行
/bin/bash命令。

2)列出容器

docker ps [OPTIONS]

 OPTIONS说明(常用):

  • -a :显示所有的容器,包括未运行的。
  • -f :根据条件过滤显示的内容。
  • --format :指定返回值的模板文件。
  • -l :显示最近创建的容器。
  • -n :列出最近创建的n个容器。
  • --no-trunc :不截断输出。
  • -q :静默模式,只显示容器编号。
  • -s :显示总的文件大小。

3)停止容器

docker stop CONTAINER_ID/CONTAIN_NAME

4)强制停止容器

docker kill CONTAINER_ID/CONTAIN_NAME

5)启动已停止容器

docker start CONTAINER_ID/CONTAIN_NAME

6)重启容器

docker restart CONTAINER_ID/CONTAIN_NAME

7)进入容器

docker exec -it CONTAINER_ID bash

如:

[hemi@localhost ~]$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                    NAMES
219371844a81        7f94db72116e        "tomcat.sh"         7 seconds ago       Up 7 seconds        8009/tcp, 8080/tcp, 0.0.0.0:91->80/tcp   zen_kalam
[hemi@localhost ~]$ docker exec -it 219371844a81 bash
bash-4.2$ 

8)删除容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]

 OPTIONS说明(常用):

  • -f :通过SIGKILL信号强制删除一个运行中的容器
  • -l :移除容器间的网络连接,而非容器本身
  • -v :-v 删除与容器关联的卷

 

更多命令见Docker的官方文档:https://docs.docker.com/edge/engine/reference/commandline/

也可以利用命令行查看,如:

docker rm --help

 

4 入门实战

此时浏览器访问结果如下表示正常 

再次访问浏览器如下结果,表示修改正常 

 

 但是此时如果重启容器,则之前的改动将失效。若要保存修改可以提交保存为新镜像↓

 

此过程还可以用Dockerfile完成

1、首先新建Dockerfile,内容如下:

2、在Dockerfile所在路径执行以下命令构建镜像,并运行:

浏览器访问


 

Dockerfile官方文档:https://docs.docker.com/engine/reference/builder/

Dockerfile最佳实践:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

 

 5 Docker Compose

Docker Compose用来定义和运行多应用容器。使用Docker Compose大致有3个步骤:

  • 使用Dockerfile定义应用程序环境,应标在任何地方重现该环境
  • 在docker-compose.yml文件中定义组成应用程序的服务,以便各个服务在一个隔离的环境中一起运行
  • 运行docker-compose up 命令,启动并运行整个应用程序

5.1 安装Compose

①通过以下命令自动下载并安装适应系统版本的Compose:

curl -L "https://github.com/docker/compose/releases/download/1.10.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

②为安装脚本添加执行权限:

chmod +x /usr/local/bin/docker-compose

安装完成。可以使用以下命令测试安装结果:

ocker-compose --version

5.2 安装Compose命令补全工具

curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

输入docker-compose并按下Tab键,compose就可以自动补全命令了。

5.3 入门实例

 个人博客实例,含三个层,分别为nginx、ghost app、mysql

1、创建3个目录

2、进入ghost目录,创建两个文件

① Dockerfile

FROM ghost
COPY ./config.production.json /var/lib/ghost/config.production.json
EXPOSE 2368

 

config.production.json  

{
    "url": "http://localhost:2368/",
    "server": {
        "port": 2368,
        "host": "0.0.0.0"
    },
    "database": {
        "client": "mysql",
        "connection": {
            "host": "db",
            "user": "ghost",
            "password": "ghost",
            "database": "ghost",
            "port": 3306,
            "charset": "utf8"
        }
    },
    "mail": {
        "transport": "Direct"
    },
    "logging": {
        "transports": [
            "file",
            "stdout"
        ]
    },
    "process": "systemd",
    "paths": {
        "contentPath": "/var/lib/ghost/content"
    }
}

 

 3、进入nginx目录,配置

①Dockerfile

FROM docker.io/nginx
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80

②nginx.conf

worker_processes 4;
events {worker_connections 1024;}
http {
    server {
        listen 80;
        location / {
            proxy_pass http://ghost-app:2368;
        }
    }
}

4、配置docker-compose.yml

 在blog目录下创建docker-compose.yml文件

version: "2"
networks:
  ghost:
services:
  ghost-app:
    build: ghost
    networks:
      - ghost
    depends_on:
      - db
    ports:
      - "2368:2368"
  nginx:
    build: nginx
    networks: 
      - ghost
    depends_on:
      - ghost-app
    ports:
      - "80:80"
  db:
    image: "mysql:5.7.15"
    networks:
      - ghost
    environment:
      MYSQL_ROOT_PASSWORD: mysqlroot
      MYSQL_USER: ghost
      MYSQL_PASSWORD: ghost
    volumes:
      - $PWD/data:/var/lib/mysql
    ports:
      - "3306:3306"

以上即可。随后在docker-compose.yml所在目录build镜像并运行

docker-compost stop         #停止容器   
docker-compose rm            #删除容器
docker-compose build         #重新建立
docker-compose up -d        #启动运行

 


 

docker-compose命令-官方文档:https://docs.docker.com/compose/reference/overview/

 

当前文章:http://www.cnsdbtzg.com/news/2019011841504/index.html

发布时间:2019-04-19 01:44:44

求购2公分美国紫薇去哪里? 粉色龙沙宝石月季树苗哪里销售? 紫藤种在廊架上什么规格? 千万级现货,矮生麦冬草基地现优惠价抛货中 博落回种子多少钱一斤? 光叶紫花苕种子多少钱一斤? 高羊茅草坪有哪些用途? 枫香树种籽什么时间种植比较适合? 虞美人花语代表着什么? 多色虞美人花海哪里有供应?

76493 18315 29361 94156 45337 72751 18825 94661 12758 19322 30033 75490 34356 60296 91200 17709 29577 86073 74201 44698 56602 65807 27134

我要说两句: (0人参与)

发布