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 镜像来创建. 容器与镜像的关系类似于 ...
随机推荐
- 复制一个带random指针的链表
一个单链表,其中除了next指针外,还有一个random指针,指向链表中的任意某个元素.如何复制这样一个链表呢? 通过next来复制一条链是很容易的,问题的难点在于如何恰当地设置新链表中的random ...
- HTTP的referer机制
Quesion: 在项目中遇到了访问某些网络上的图片但是打开是forbidden的情况,原来这是一些网站为了避免图片被盗取所以采取的保护机制,如果不是从原网站上访问的图片,就禁止访问.那么这种情况应该 ...
- datax 添加oraclewriter
日期格式: <param key="dtfmt" value="yyyy-MM-dd hh24:mi:ss"/>
- awk添加文本到指定内容后一行
一下操作会输入到文件末尾,,测试不全面,还不如使用echo解决呢... 1. 要添加的文本内容如下: 文件名:code_list html</>!@$%^^ fdsafds <> ...
- Node初学者入门,一本全面的NodeJS教程
作者: Manuel Kiessling 翻译: goddyzhao & GrayZhang & MondayChen 关于 本书致力于教会你如何用Node.js来开发应用,过程中会 ...
- 字典树Trie的使用
1. Trie树介绍 Trie,又称单词查找树.前缀树,是一种多叉树结构.如下图所示: 上图是一棵Trie树,表示了关键字集合{“a”, “to”, “tea”, “ted”, “ten”, “i”, ...
- Vue cli项目开启Gzip
目录 安装 compression-webpack-plugin 更改配置文件 服务器开启gzip功能 安装 compression-webpack-plugin 建议安装v1.1.11版本,最新版本 ...
- bzoj 5281 [Usaco2018 Open]Talent Show——0/1分数规划
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5281 把分子乘1000,就能在整数里做了. 这种水题也花了这么久…… #include< ...
- WCF知识点(应用WCF支持原生Socket访问, 原始字节流传输)
最近在做区域医疗中PIX时, 需要让PIX Manager同时支持HL7的V2和V3版本.思路是利用WCF来同时支持V2版本的c/s架构式的消息协议和V3版本WebService的Soap协议. 实 ...
- Object中的方法
1.equals() 2.toString() package com_package1; public class Person44 { private int age; public int ge ...