docker的初步使用

导读

本文不追求严谨的措辞,仅为没有用过docker的用户提供快速的概览

docker是一个轻量的虚拟机

虚拟机 :

从网上下载了一个软件,不确定是否包含病毒;或者只是临时用一下,有点洁癖不希望有这个软件的残留。

此时把这个软件放到虚拟机的系统里运行,用完了可能就连这个虚拟系统一起删除了。

虚拟机是完全模拟了系统,或许你只是想装个mysql 。

但是为了支撑虚拟系统的运行,维持系统运行的却要许多额外进程。

虚拟机里面的系统是个完整的系统

docker的轻量在于你只需要运行你的mysql就好,其他的东西会调用宿主机的功能。

docker的系统算是个半成品,他只运行你要运行的服务。

案例

通过使用docker安装一个mysql数据库

1. 在linux中安装docker

Docker的版本在1.13.x 叫docker

3月2日,Docker 官方发布了一篇 blog ,宣布企业版到来。版本也从1.13.x一跃到17.03。
此后docker 有两种类型 docker CE(社区版) docker EE(企业版)

此处提供docker ce的安装

1.1 配置ubuntu仓库

1. 设置apt支持https

sudo apt-get install 
apt-transport-https ca-certificates 
curl software-properties-common

2. 下载验证码

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

3. 指纹验证 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

sudo apt-key fingerprint 0EBFCD88

4. 添加docker官方仓库

sudo add-apt-repository 
"deb [arch=amd64] https://download.docker.com/linux/ubuntu 
$(lsb_release -cs) 
stable"

1.2 安装docker

#更新apt仓库缓存
sudo apt-get update

#安装docker
sudo apt-get install docker-ce

#测试Docker的hello world
sudo docker run hello-world


2. 使用docker安装mysql数据库

环境:系统ubuntu16.10 主机ip:192.168.1.10 docker17

# 2.1 创建mysql保存数据的文件夹

su root
mkdir /my/own/datadir

# 2.2 下载镜像(静态文件)

docker pull mysql:5.6.36

# 2.3 创建并启动容器

docker run --name mysql_test1 
  -p 4001:3306 
  -v /my/own/datadir:/var/lib/mysql 
  -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.6.36

此时可以通过192.168.1.10:4001访问mysql数据库了

------------其他命令----------------

# 启动容器

docker stop mysql_test1

# 启动容器

docker start mysql_test1


3. 运行参数解释

参数解释

docker pull 表示从镜像仓库将某个镜像下载到本地

--name mysql_test1

起个名, 方便操作

-v /my/own/datadir:/var/lib/mysql

文件夹/my/own/datadir是宿主机的文件,用于保存mysql的数据文件

-v /my/custom:/etc/mysql/conf.d

(这个参数如果需要可以使用) 自定义mysql的配置文件

-e MYSQL_ROOT_PASSWORD=123

动态变量mysql的密码

-p 4001:3306

暴露3306端口到宿主机的4001 用户通过宿主机的4001访问myql

-d mysql:5.6.36

使用之前下载的镜像 -d表示在后台运行

其他命令

# 删除一个停止的容器
docker rm mysql_test1

# 删除一个本地的镜像
docker rmi mysql:5.6.36


4. 案例总结

镜像: 对于mysql:5.6.36叫做镜像 可以理解为压缩包

容器: 称mysql_test1为一个容器 可以理解为解压后的运行文件

仓库 :默认会从docker官方拉取镜像,国内也有许多提供仓库服务的公司

安装好之后只会注意三个东西 :

  • 数据库文件的保存位置(文件)
  • ip + 端口 用于连接 (网络)
  • 用户名密码 (其实还是保存在文件中)

运维人员

开发者

一般都使用相同的镜像,

启动时可以按需要传入动态配置参数

通过网络访问

如 192.168.1.10:3306

通过-v参数将数据保存在docker的宿主机中 而容器可以直接删除 。

迁移数据方便

开发者不需要关心Mysql的运行环境

装在docker中还是linux或者windows中

5. 其他

docker的用途

  1. 可以使开发环境和运行环境保持一致
  2. 可以快速使用来自网友分享的各种开发环境
  3. 自动化测试和持续集成、发布

需要继续了解的东西

  1. 不同容器之间如何通信
  2. 通过Dockerfile创建镜像
  3. 通过容器编排使多个软件成为一组服务
原文地址:https://www.cnblogs.com/fluffy/p/6946724.html