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. iOSapp内跳转到设置界面

    从app内跳转到设置界面的代码如下: NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; if ([[UIAp ...

  2. valgrind报错VEX temporary storage exhausted

    valgrind的使用请参考: 使用valgrind进行内存泄漏和非法内存操作检测 最近在使用valgrind进行内存泄漏检测是时,竟然报错,如下: VEX temporary storage exh ...

  3. BZOJ 4519 [CQOI2016]不同的最小割

    这道题目很奇怪. 为什么奇怪?因为这道题用了一种叫分治最小割/最小割树的玩意. 以前从来没有见过这东西. 推荐一个讲这玩意的博客 写起来还是很顺手的. #include<iostream> ...

  4. mini2440 uboot烧写uImage

    mini2440下烧写u-boot后,就可以用u-boot烧写linux内核了. 安装mkimage工具: apt-get install u-boot-tools 解压缩官方mini2440 lin ...

  5. 和菜鸟一起学android4.0.3源码之硬件gps简单移植【转】

    本文转载自:http://blog.csdn.net/mwj19890829/article/details/18751447 关于Android定位方式 android 定位一般有四种方法,这四种方 ...

  6. sublime 3好用快捷键

    sublime 3好用快捷键 自己常用 删除行 [ { "keys": ["ctrl+shift+d"], "command": " ...

  7. Django:locals()小技巧

    locals()返回一个包含当前作用域里面的所有变量和它们的值的字典. 所以可以把views改写为 def current_datetime(request):     current_date = ...

  8. ogg概叙、架构、进程

    一. OGG 概述 OGG 全称Oracle Golden Gate. 历史: Golden Gate公司于1995年成立于美国加州旧金山,它的名称源自旧金山闻名于世的金门大桥.两位创始人Eric F ...

  9. BZOJ3784:树上的路径

    浅谈树分治:https://www.cnblogs.com/AKMer/p/10014803.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem. ...

  10. Vijos:P1234口袋的天空

    背景 小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空. 有很多云飘在那里,看起来很漂亮,小杉想摘下那样美的几朵云,做成棉花糖. 描述 给你云朵的个数N,再给你M个关系,表示哪些云朵可以连在一起. ...