[工具篇]10分钟快速上手Docker

flag flag flag立住了,本次更新docker,带你快速上手Docker!!!

那么下面有请Docker做个自我介绍

[工具篇]10分钟快速上手Docker_第1张图片

一、Docker自我介绍

Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。

[工具篇]10分钟快速上手Docker_第2张图片

Go语言近几年很火呀,看今年时间,要是有时间就上手go语言了。

二、Docker的架构

Docker包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

[工具篇]10分钟快速上手Docker_第3张图片

那么下面就开始Docker旅程吧,对了windows or linux系统安装docker的话参考链接

跟随我一起跟Docker愉快的玩耍吧!!!

三、Docker的快乐玩耍

[工具篇]10分钟快速上手Docker_第4张图片

首先来到Docker的游乐场。在这里开启一个Docker。

[工具篇]10分钟快速上手Docker_第5张图片

然后新建一个实例,实例中开启一个terminal命令行,并开启4hour的玩耍时间。

[工具篇]10分钟快速上手Docker_第6张图片

1. Docker容器的使用

首先获取镜像,从仓库中用pull来拉取镜像:

docker pull nginx

[工具篇]10分钟快速上手Docker_第7张图片

查看本地拉取的镜像

docker images

启动容器

docker run -d -p 80:80 nginx

参数说明:

docker run [参数] 镜像名:版本 [运行的shell指令]

-d                           后台运行
-e MYSQL_ROOT_PASSWOR=123456 环境变量
-p 80:80                     端口映射
-it                          阻塞运行
-v /suzhu:/rongqi            文件[夹]映射
--link mysql:mysql           链接其他容器
--rm                         运行结束后自动销毁
--name                       指定容器运行后的名字
--restart always             机器重启后是否自动运行

查看正在运行的容器

docker ps

进入容器中

docker exec -it 容器id /bin/bash

停止容器

docker stop <容器 ID>

停止的容器重启

docker restart <容器 ID>

删除容器

docker rm -f <容器 ID>

容器保存为镜像

docker commit  <容器 ID>  <镜像名>

[工具篇]10分钟快速上手Docker_第8张图片

2. Docker镜像使用

列出本机镜像

docker images

获取新的镜像

docker pull ubuntu:13.10

查找镜像

docker search httpd

删除镜像

docker rmi httpd

镜像保存为tar文件

docker save <镜像名>  > <xx.tar>

加载镜像

docker load<镜像名>  < <xx.tar>

Dockerfile来创建镜像

docker save<镜像名>  > <xx.tar>
vim Dockerfile

[工具篇]10分钟快速上手Docker_第9张图片

docker build -t <镜像名> 

[工具篇]10分钟快速上手Docker_第10张图片

3. Docker容器互联

运行一个容器

 docker run -d -p 80:80 –name mynginx nginx

运行容器并连接到之前的容器上

docker run -dit -link mynginx:mynginx alpine

进入容器中

docker exec -it <容器id> sh
apk add curl
curl mynginx
cat etc/hosts

[工具篇]10分钟快速上手Docker_第11张图片

[工具篇]10分钟快速上手Docker_第12张图片

4. Docker Compose多容器互联

Docker Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,可以使用YML文件来配置应用程序所需的所有服务。然后使用一个命令,就可以从YML文件配置中创建并启动所有服务。

Docker Compose的使用三个步骤为:

  • 使用Dockfile定义应用程序的环境
  • 使用docker-compose.yml定义构成应用程序的服务,使其可以在隔离环境中运行
  • 最后执行docker-compose up命令来启动并运行整个应用程序。

其中Compose的安装可参考链接(https://www.runoob.com/docker/docker-compose.html)
使用:
本次分为 nginx, php 和 mysql三个模块
目录结构如下

创建目录:

mkdir hello-docker-compose
mkdir conf
mkdir html

在conf目录下

cd conf/
vim nginx.conf
worker_processes  1;

events {
    worker_connections  1024;
}
http {                                                  
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

        location ~ \.php$ {                     
            fastcgi_pass    php:9000;
            fastcgi_index   index.php;
            fastcgi_param   SCRIPT_FILENAME     /var/www/html/$fastcgi_script_name;    
            include         fastcgi_params;
        }
    }
}

在html下

cd html/
vim index.html
# index.html中内容直接写
Hello Docker-Compose

在html下

vim test.php
<?php
phpinfo();
?>
vim mysql.php
<?php
$dbhost = 'mysql';
$dbuser = 'root';
$dbpass = '123456';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if (!$conn) {
	die('could not connect! ' . mysqi_error());
}
echo 'connect success! ';
mysqli_close($conn);

?>

编写docker-compose.yml

version: "3"
services:
  nginx:
    image: nginx:alpine
    ports:
    - 80:80
    volumes:
    - ./html:/usr/share/nginx/html
    - ./conf/nginx.conf:/etc/nginx/nginx.conf
  php:
    image: devilbox/php-fpm:8.0-work-0.106
    volumes:
    - ./html:/var/www/html
  mysql:
    image: mysql:5.6
    environment:
    - MYSQL_ROOT_PASSWORD=123456

最后运行启动

docker-compose up -d


大功告成!!!
[工具篇]10分钟快速上手Docker_第13张图片
Docker就先到此为止,等日后用了之后再后续补充,下次更新github以及git的使
用,顺便求大家给github的项目star,fork!!!

你可能感兴趣的:(工具篇,Docker)