Docker学习:Docker安装和基本使用
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
说明:
- 这里
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安装和基本使用的更多相关文章
- docker学习(1) 安装
docker是啥就不多讲了,简言之就是更轻量.更牛叉的新一代虚拟机技术.下面是安装步骤: 一.mac/windows平台的安装 docker是在linux内核基础上发展而来的,无法直接运行在mac/w ...
- docker学习-----docker服务的安装
docker 以下观点个人理解,只做参考 一.docker本身的优势 1.docker他本身是一个容器,用来方便我们项目打包,做服务器虚拟化,统一开发者环境等多种优势:运行于docker上的项目可以快 ...
- docker学习笔记-安装
安装docker Ubuntu Docker 安装 Docker 支持以下的 Ubuntu 版本: Ubuntu Precise 12.04 (LTS) Ubuntu Trusty 14.04 (LT ...
- docker学习-docker安装
win10之外的系统:https://www.docker.com/products/docker-toolbox win10系统: https://www.docker.com/pro ...
- 一、docker学习笔记——安装docker
系统win10 企业版 1.下载docker CE 2.安装.注意,由于docker 与Oracle VM VirtualBox 冲突,在windows平台上二者不可共存.你只能2选1!! 3.如果d ...
- Docker学习日记-安装Docker
Docker是什么: 简单理解就是基于go语言开发的开源的应用容器引擎. 对进程进行封装隔离,属于操作系统层面的虚拟化技术. Docker的优势: 1.更高效的利用系统资源 2.更快速的启动时间 3. ...
- Docker学习之安装mysql
1.从Docker检索mysql镜像 指令: docker search mysql 2.镜像下载 指令: docker pull mysql:5.7.19 3.查看本地镜像列表 指令: docker ...
- DOCKER学习 docker
DOCKER只能安装到LIUX系列机器上 如果WINDOWS想安装必须通过虚拟机来完成. 比如用VM,VBOX等 安装之前需要用ROOT账户 su 安装DOCKER (CE是个人版本,EE是企业版本) ...
- Docker学习—Docker简介
什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linu ...
- Docker学习--docker的基本认识
1.Docker 架构 Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器. Docker 容器通过 Docker 镜像来创建. 容器与镜像的关系类似于 ...
随机推荐
- Unity中几种简单的相机跟随
#unity中相机追随 固定相机跟随,这种相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动 using UnityEngine; using System.Collectio ...
- java多线程系列 JUC锁01 框架
转载 http://www.cnblogs.com/skywang12345/p/3496098.html 参考 https://www.cnblogs.com/leesf456/p/5453091. ...
- Object.create用法
用法: Object.create(object, [,propertiesObject]) 创建一个新对象,继承object的属性,可添加propertiesObject添加属性,并对属性作出详细解 ...
- 小米系列手机调试Installation failed with message Failed to establish session
用Android studio 2.3调度程序时提示"Installation failed with message Failed to establish session"错误 ...
- JS如何定义方法及调用 精选
简单搜索了下,遇到点问题1,经常在JS中看到如var foo = function(){}的形式foo是方法名还是对象名,如果想调用此方法,是用foo(),foo.function(),还是该如何正确 ...
- BZOJ 1626 [Usaco2007 Dec]Building Roads 修建道路:kruskal(最小生成树)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1626 题意: 有n个农场,坐标为(x[i],y[i]). 有m条原先就修好的路,连接农场( ...
- 什么是Grunt
Grunt,简而言之,就是运行在Node.js上面的任务管理器(task runner),其可以在任何语言和项目中自动化指定的任务.我们可通过npm来安装Grunt和Grunt插件 为什么使用Grun ...
- hdu1085Holding Bin-Laden Captive!组合问题
题目连接 题目意思:有单位价值为1 2 5的三种硬币,分别给出他们的数量,求用这些硬币不能组成的最小的价值 解题思路:普通的母函数 普通的母函数: 利用母函数的思想可以解决很多组合问题,下面举例说明: ...
- 洛谷 1131 [ZJOI2007]时态同步——树形dp
题目:https://www.luogu.org/problemnew/show/P1131 因为越高,调节一个影响到的越多,所以底下只要把子树间的差异消除了就行了,与其他部分的差异由更高的边调节. ...
- TCP/IP详解卷1 - wireshark抓包分析
TCP/IP详解卷1 - 系列文 TCP/IP详解卷1 - 思维导图(1) TCP/IP详解卷1 - wireshark抓包分析 引言 在初学TCP/IP协议时,会觉得协议是一种很抽象的东西,通过wi ...