Docker


Docek是一种容器技术。容器是一种轻量级、可移植、自打包的软件技术,使应用程序可以在几乎任何地方以相同的方式运行。

使用者可以在笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。

Docker安装


安装docker会用到一下命令

//更新apt-get
apt-get update
//安装docker
apt-get install docker.io
//配置加速器
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://mirror.ccs.tencentyun.com",
"https://ytji6dx6.mirror.aliyuncs.com"
]
}
EOF
//重启daemon
systemctl daemon-reload
//重启docker
systemctl restart docker

安装截图如下

第一步:更新apt-get命令

第二步:安装docker

第三步:配置加速器

第四步:重启daemon和Docker

Docker基本使用

docker运行

docker run -p 3306:3306 --name mymysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

说明:

docker run:docker从镜像启动一个容器命令

--name:这是docker run命令的参数,给要启动的容器起个名字

-p:端口映射,前面的是宿主端口号,后面的是容器端口号

-v:挂载宿主机目录到镜容器里,前面的是宿主机目录,后面的是容器目录,那么后面的目录为什么是/var/lib/mysql呢?执行docker inspect -f {{.Config.Volumes}} bob-mysql就可以看到了

-e——指的是环境变量,在启动MySQL镜像时,可以传入一个或多个环境变量修改MySQL实例的配置。这里一定要注意的是启动容器的数据目录已经包含了数据库,这时环境变量就不起作用了。

MySQL镜像支持一下环境变量

MYSQL_ROOT_PASSWORD —— 设置MySQL root用户的密码

MYSQL_DATABASE —— 指定在镜像启动时创建的数据库名称,如果同时指定了MYSQL_USER, MYSQL_PASSWORD,则会授予该用户对这个数据库ALL的权限(GRANT ALL)

MYSQL_USER, MYSQL_PASSWORD —— 创建一个用户并设置它的密码

MYSQL_ALLOW_EMPTY_PASSWORD —— 设置为yes允许容器启动时root用户密码留空

MYSQL_RANDOM_ROOT_PASSWORD —— 为root用户生成随机密码(使用pwgen)

MYSQL_ONETIME_PASSWORD —— 设置root用户初始化完后过期,强制登录时修改密码。注意这个功能只支持MySQL 5.6+

查看镜像版本

docker version

镜像下载

docker pull mysql:5.6

说明:

  1. 这里mysql:5.6是镜像名称和版本号,若是不确定版本,可以使用docker pull mysql则直接下载最新的版本

查询镜像

docker image ls

删除镜像

docker rmi mysql

查看运行的容器

docker ps

说明:

docker ps -a:显示所有的容器

docker ps:显示运行的容器

更多命令使用方法docker ps --help

进入容器

docker exec -it id /bin/bash

查看容器日志

# 退出容器
docker logs -f id

容器停止/启动

docker stop/start id

删除容器

docker rm 容器id

仓库登录

docker login

镜像构建

# 使用Dockerfile创建名为 yucy/mysql的镜像
docker build --rm=true -t yucy/mysql

镜像打tag

# 将镜像ubuntu:16.04标记为 yucy/ubuntu:V1 镜像
docker tag ubuntu:16.04 yucy/ubuntu:V1

镜像推送

docker push 注册用户名/镜像名

安装问题解决

第一次安装virtualbox的时候,没有设置虚拟电脑的保存路径,导致C盘爆满,具体可参考Docker学习:virtualbox安装和配置,下面是另外一个很纠结的问题,直到今天才解决!!!

第一次使用docker pull mysql时,一直提示no matching manifest for unknown in the manifest list entries在网上查找了很多资料,有解决方法是windows上配置daemon.json中增加配置"experimental": true,可是本机是linux虚拟机,在json文件中增加了这个配置选项,再次pull镜像仍是出错。

后来反复查看虚拟机ios文件和docker的安装要求,发现是虚拟机的版本问题,重新安装ubuntu-16.04.6-server-amd64的虚拟机,问题圆满解决

Docker学习:Docker安装和基本使用的更多相关文章

  1. docker学习(1) 安装

    docker是啥就不多讲了,简言之就是更轻量.更牛叉的新一代虚拟机技术.下面是安装步骤: 一.mac/windows平台的安装 docker是在linux内核基础上发展而来的,无法直接运行在mac/w ...

  2. docker学习-----docker服务的安装

    docker 以下观点个人理解,只做参考 一.docker本身的优势 1.docker他本身是一个容器,用来方便我们项目打包,做服务器虚拟化,统一开发者环境等多种优势:运行于docker上的项目可以快 ...

  3. docker学习笔记-安装

    安装docker Ubuntu Docker 安装 Docker 支持以下的 Ubuntu 版本: Ubuntu Precise 12.04 (LTS) Ubuntu Trusty 14.04 (LT ...

  4. docker学习-docker安装

    win10之外的系统:https://www.docker.com/products/docker-toolbox win10系统:        https://www.docker.com/pro ...

  5. 一、docker学习笔记——安装docker

    系统win10 企业版 1.下载docker CE 2.安装.注意,由于docker 与Oracle VM VirtualBox 冲突,在windows平台上二者不可共存.你只能2选1!! 3.如果d ...

  6. Docker学习日记-安装Docker

    Docker是什么: 简单理解就是基于go语言开发的开源的应用容器引擎. 对进程进行封装隔离,属于操作系统层面的虚拟化技术. Docker的优势: 1.更高效的利用系统资源 2.更快速的启动时间 3. ...

  7. Docker学习之安装mysql

    1.从Docker检索mysql镜像 指令: docker search mysql 2.镜像下载 指令: docker pull mysql:5.7.19 3.查看本地镜像列表 指令: docker ...

  8. DOCKER学习 docker

    DOCKER只能安装到LIUX系列机器上 如果WINDOWS想安装必须通过虚拟机来完成. 比如用VM,VBOX等 安装之前需要用ROOT账户 su 安装DOCKER (CE是个人版本,EE是企业版本) ...

  9. Docker学习—Docker简介

    什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linu ...

  10. Docker学习--docker的基本认识

    1.Docker 架构 Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器. Docker 容器通过 Docker 镜像来创建. 容器与镜像的关系类似于 ...

随机推荐

  1. spring-boot4代码

    App.java package com.kfit; import org.springframework.boot.SpringApplication; import org.springframe ...

  2. Android Weekly Notes Issue #318

    Android Weekly Issue #318 July 15th, 2018 Android Weekly Issue #318 本期内容包括: Android Navigation Compo ...

  3. HTML5/CSS3鼠标滑过图片滤镜动画效果

    在线演示 本地下载

  4. Linux bash shell环境变量以及语法规范

    摘自: http://blog.csdn.net/abc_ii/article/details/8762739

  5. Java_正则_00_资源贴

    二.参考资料 1.揭开正则表达式的神秘面纱

  6. mysql一次性和多次取数据的性能测试

    1.表结构 2.数据量 3.代码 先从学生表里面查出300名学生,然后找出每个学生的班级信息,然后merge起来 3.性能对比 第一种:每次取一条 第二种:一次全去除 4.总结 不能循环取从数据库中取 ...

  7. selenium总结

    个人对selenium的理解: 1.使用selenium操作浏览器,实际上是使用selenium框架下的webdriver启动各浏览器的驱动实现对浏览器的操作的.以下两句代码即可启动firefox浏览 ...

  8. bootstrap框架日期时间 开始日期和结束日期选择

    页面表单查询时,常要求要查询一个日期时间段内的数据,若采用bootstrap框架的datetimepicker插件来控制,需要了解怎么个用法:

  9. codevs2821 天使之城

    传送门 2821 天使之城  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold   题目描述 Description 天使城有一个火车站,每辆火车都从A方向驶入车站 ...

  10. 【LeetCode】259 3Sum Smaller

    题目: Given an array of n integers nums and a target, find the number of index triplets i, j, k with 0 ...