一、Docker是什么?
容器是一种应用环境打包技术,使应用程序可以在几乎任何地方以相同的方式运行。
容器使软件具备了超强的可移植能力。
Docker的核心组件,包括Docker客户端(client)、Docker服务端(docker daemon)、镜像(Image)、注册中心(Registry)Doctor容器(Container),参见下图。Docker是C/S架构。客户端向服务端发送请求,服务端负责构建、运行和分发容器。
Docker客户端最常用的是docker命令。通过docker可以方便地在宿主机(Host)上构建和运行容器。
Docker daemon是服务器组件,以Linux后台服务的方式运行。
Docker镜像可以创建Docker容器,镜像有多种生成方法:可以从无到有开始创建镜像;也可以下载并使用别人创建好的现成的镜像;还可以在现有镜像上创建新的镜像。将镜像的内容和创建步骤描述在一个名为Dockerfile文件中,通过在客户端执行docker build <docker-file>命令可以构建出docker镜像。
Docker容器就是Docker镜像的运行实例。Registry是存放Docker镜像的仓库,Registry分私有和公有两种。Docker Hub(https://hub.docker.com/)是默认的Registry,由Docker公司维护,上面有数以万计的镜像,用户可以自由下载和使用。考虑到速度或安全方面,用户也可以创建自己的私有Registry(比如harbor)。
(此上内容参考CloudMan的<<Docker容器>>,可以关注其微信公众号:CloudMan)
二、CentOS安装Docker
1.安装一些必要的系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.更新 yum 缓存
sudo yum makecache fast
4.安装 Docker
sudo yum -y install docker
(5)启动 Docker 后台服务并设置开机启动
systemctl start docker && systemctl enable docker
5.验证安装是否成功,可以通过以下任意命令即可
(1)查看docker服务的运行状态
systemctl status docker
(2)查看其版本信息
docker -v 或者 docker info
三、ubuntu16.04上安装Docker
1.先卸载 可能存在的旧版本
sudo apt-get remove docker docker-engine docker-ce docker.io
2. 更新apt包索引
sudo apt-get update
3.安装以下包以使apt可以通过HTTPS使用存储库(repository)
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
4. 添加Docker官方的GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
注意:要出现ok才行。
5. 使用下面的命令来设置stable存储库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
6.再更新一下apt包索引
sudo apt-get update
7.安装最新版本的Docker CE
sudo apt-get install -y docker-ce
8.验证
参见CentOS上的验证
四、修改Docker Hub注册中心
为什么需要修改?主要就是由于国外的源访问速度很慢,有时候拉取镜像会失败。
下面使用阿里的加速网址。
1.首先,去下述网站申请个阿里加速网址
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
2.修改daemon配置文件来使用加速网址
(1)编辑daemon文件
vi /etc/docker/daemon.json
(2)修改内容
{
"registry-mirrors": ["加速网址"]
}
3.重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
五、使用示例1:在docker上安装mysql
1.查询 注册中心(register)上mysql镜像
docker search mysql
2.拉取镜像
docker pull mysql
可以通过下述命令查看镜像是否拉取成功
docker images | grep mysql
3.在当前用户目录下~(或自己任意选择目录也可)创建目录docker/mysql,在mysql目录里创data、logs、conf三个目录
4.在~/docker/mysql目录下运行容器
docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=【root用户密码】 -d 【镜像ID或镜像名称】
命令参数解析:
-p 3306:3306 :将容器的3306端口映射到安装Docker主机的3306端口
--name mysql:为启动的容器命名为mysql
-v $PWD/conf:/etc/mysql/conf.d:将安装Docker主机上当前目录下的conf目录挂载到容器的/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=root用户密码:初始化root用户的密码
-d 镜像ID或名称:表示要使用的镜像
5.查看容器是否启动成功
docker ps
出现上述情况说明安装成功。
若要进入容器可以使用下述命令:
docker exec -it 容器ID或name bash
比如:docker exec -it mysql bash
安装成功后可以采用Navicat等可视化软件进行数据库操作,若由于安装的mysql版本较高时,可能出现连接不上。
这时再使用以下步骤创建一个新用户进行连接。
(1)进入容器
docker exec -it mysql(容器名称) bash
(2)登录 mysql:
mysql -uroot -p (需要输入前面初始化的root用户密码)
ALTER USER 'root'@'localhost' IDENTIFIED BY '【root用户密码】';
(3)添加新用户用来连接
CREATE USER '【新用户名】'@'%' IDENTIFIED WITH mysql_native_password BY '【root用户密码】';
GRANT ALL PRIVILEGES ON *.* TO '【新用户名】'@'%';
此时就可以使用新的用户来进行连接MySQL数据库了。
六、使用示例2:在Docker容器中安装Redis
1.拉取镜像
docker pull redis
2.启动容器
docker run -p 6379:6379 -v $PWD/data:/data -d redis redis-server --appendonly yes
3.进入redis
docker exec -it 43f7a65ec7f8(容器id) redis-cli
4.设置redis密码
config set requirepass 123456
5.认证密码:
auth 123456
tip: 获取密码
config get requirepass
6.停止容器
docker stop 容器ID
7.再重新启动容器
docker start 容器ID
注意:容器ID通过docker ps -a来获取,注意要重新设置redis密码
附上: Redis的简单使用
(1)设置key值:
set [key] [value]
(2)获取key值:
get [key]
(3)获取所有的key:
keys *
(4)删除key:
del [key]
(5)删除所有key:
flushall
以上是我学习docker的一些总结,希望能帮助想要快速上手使用Docker的你。