Docker使用教程详解

`Docker`

          • Docker技术简介
          • Docker的应用场景
          • Docker 的组成
          • docker操作
          • docker镜像
          • 运行mysql容器操作
          • 容器之间的关联

Docker技术简介

Docker使用教程详解_第1张图片
Docker 如日中天,这不是单纯的炒的概念,Docker的确解决了开发和运费的痛点,比如版本的搬迁,从测试环境搬迁到预发、生产环境,在企业开发与测试中,得到了非常广泛的应用。

  1. Docker 是一个开放源码的软件项目,基于GO语言
  2. Docker 可以让开发打包他们的应用以及依赖包到一个轻量级、可移植的容器中
  3. Docker 打包好容器,可以发布到任何流行的 Linux 机器上,也可以实现虚拟化
  4. 容器是完全使用沙箱机制,互相之间不会有任何接口
  5. Docker 容器性能开销极低,这个才是关键
  6. Docker 使用客户端-服务器(C/S)架构模式,使用远程API来管理和创建Docker容器
Docker的应用场景

Web应用自动化打包和发布
自动化测试和持续集成、发布
在服务器环境中部署和调整数据库或其他的后台应用
使用Docker可以实现开发环境、测试环境、生成环境的一致性

Docker使用教程详解_第2张图片

Docker 借鉴了标准的集装箱的概念。标准的集装箱将货物运往世界各地,Docker 将这个模型运行到自己的设计中。唯一不同的是: 集装箱是运输货物,Docker是运输软件。
Docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统虚拟机则是在硬件层面实现虚拟化。
docker 与传统的VM对比:
1.启动速度:vm 一般几十秒或者几分钟,docker几秒或者毫秒
2.大小:vm 一般几G,docker只有几兆
Docker使用教程详解_第3张图片

Docker 的组成

Docker 需要分为三部分: 仓库、 镜像 , 容器
Docker使用教程详解_第4张图片

docker操作

查看docker版本

docker -v

启动docker

systemctl start docker

关闭docker

systemctl stop docker

重启docker

systemctl restart docker

关闭防火墙

systemctl stop firewalld
docker镜像

列出镜像列表

docker images

Docker使用教程详解_第5张图片
搜索镜像,以mysql为例子

$ docker search mysql
NAME                     DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                    MySQL is a widely used, open-source relati...   2529      [OK]       
mysql/mysql-server       Optimized MySQL Server Docker images. Crea...   161                  [OK]
centurylink/mysql        Image containing mysql. Optimized to be li...   45                   [OK]
sameersbn/mysql                                                          36                   [OK]
google/mysql             MySQL server for Google Compute Engine          16                   [OK]
appcontainers/mysql      Centos/Debian Based Customizable MySQL Con...   8                    [OK]
marvambass/mysql         MySQL Server based on Ubuntu 14.04              6                    [OK]
drupaldocker/mysql       MySQL for Drupal                                2                    [OK]
azukiapp/mysql           Docker image to run MySQL by Azuki - http:...   2                    [OK]
...

拉取镜像

docker pull 镜像ID

查看本地镜像

docker ps # 查看正在运行的容易
docker ps -a # 查看所有容器

Docker使用教程详解_第6张图片
电脑上没有装mysql 所以没有mysql这个命令

运行mysql容器操作

需要进入mysql容器内部 docker exec -it 容器id /bin/bash,并且进入命令行在这里插入图片描述
运行容器

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

参数说明

-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,

外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。

MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。

启动镜像 已经把docker容器内部的3306端口 映射到自己本机了 可以直接通过navicat连上
Docker使用教程详解_第7张图片
然后就可以执行mysql命令了,启动 mysql:docker start docker -mysql
Docker使用教程详解_第8张图片
mysql最新版本拉取mysql镜像失败问题分析:
需要先把mysql容器ID停掉stop,然后rm删除掉容器ID

docker stop 容器ID
docker restart 容器ID

再执行docker run -d --name mysql-test -e MYSQL_ROOT_PASSWORD=123456 -p23306:3306 mysql:5.7.26 这条命令是替换mysql版本的,最后mysql:5.7.26 表示 要实例化 mysql的镜像 镜像的tag是5.7.26

容器之间的关联
docker run -di --name=mysql-test -p 8080:8080 --link redis

你可能感兴趣的:(Linux运维,docker,容器,运维)