初学dock

本文介绍了Docker的基本概念,如镜像、仓库和容器的关系,详细讲解了在Ubuntu18.04上安装Docker的方法,包括更新软件、添加依赖和密钥、安装步骤,以及使用dockerpull、run等命令。还展示了如何使用Docker部署MySQL和Redis的实例。
摘要由CSDN通过智能技术生成

参考帖子:docker大神贴
借鉴了别人的帖子,整理成对自己有用的信息。

目录:
第一章:介绍docker
第二章:现场安装
第三章:常用指令
第四章:mysql部署
第五章:redis部署

初理解:我们要把台式机的应用部署到笔记本上,我们可能选择用QQ发过去或者用U盘拷过去,docker就标准化了这个过程,我们只需在台式机上执行一个docker命令,把鲸鱼派过来,把程序送到超级码头去,再在笔记本上执行一个docker命令,然后由鲸鱼把程序从超级码头送到笔记本上去.

一、走进docker

镜像就是上面说的集装箱,仓库就是超级码头,容器就是我们运行程序的地方.docker运行程序的过程就是去仓库把镜像拉到本地,然后用一条命令把镜像运行起来变成容器.

build:构建,就是构建镜像.

ship:运输,运输镜像,从仓库和主机运输.

run:运行的镜像就是一个容器.

build,ship,run和镜像,仓库,容器是一一对应的.

1.1 镜像

什么是镜像?
maybe: 一个应用程序文件? or 一个运行环境文件?

原理
举一个例子:有两个文件夹:wenjianjia1,wenjianjia2。
分别有一下信息。
wenjianjia1: wenjia1, wenjian2, wenjian3
wenjianjia2: wenjia4, wenjian5

这时候有一个牛逼的文件夹,可以同时存放这两个文件夹的文件
wenjianjia: wenjia1, wenjian2, wenjian3, wenjia4, wenjian5
我们称之为联合文件系统。

docker正式基于此来。
放大来看,最底层是文件系统,依次网上是相关软件,在网上是自己写的程序。

目录结构
自己写的代码
相关软件
操作系统

如果我们会把上面三层当成一层,看成同一个目录。docker的这种文件系统被称之为镜像.
但镜像每一层只允许是只读的。

1.2 容器

把他理解成虚拟机,但是最下面的n层都是只读的,只有上面一层是可写的。

1.3 仓库

我们的镜像是要在其它机器上运行,如何进行传输呢?

这就用到了docker仓库,我们要先把我们的镜像传到docker仓库中,再由目的地把docker仓库拉过去,这就完成了这样的一次传输过程.

二、安装docker

tips:使用的是ubuntu 18.04.6
可以使用

lsb_release -a

查看版本信息
在这里插入图片描述

2.1 更新软件包

sudo apt update
sudo apt upgrade

在这里插入图片描述

2.2 安装docker依赖

apt-get install ca-certificates curl gnupg lsb-release

在这里插入图片描述

2.3 添加Docker官方密钥

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

在这里插入图片描述

2.4 添加软件源

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

在这里插入图片描述

2.5 安装docker

apt-get install docker-ce docker-ce-cli containerd.io

在这里插入图片描述

2.6* 配置用户组(可选)

由于我们要使用sudo才能运行Docker命令,我们只需要将用户添加到docker组,这样以后就可以不用每次都sudo了

sudo usermod -aG docker $USER

2.7 运行docker

# 启动
systemctl start docker
# 安装工具
apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# 重启
service docker restart
# 验证是否成功
sudo docker run hello-world

在这里插入图片描述

三、docker基本命令

3.1 docker 基本命令

①远程仓库拉取镜像到本地(说白了就是自己本地仓库没有从远程仓库拉一个下来)

docker pull [options] NAME[:TAG]
	name是拉取镜像的名称,:TAG表示是可选的,如果不选表明时latest,如果选择表明是指定版本的.
	options是拉去的一些参数.
	当不加请求地址的时候回去docker的官网拉取镜像.

②可以使用这个命令来列出本地的镜像、移除镜像、创建镜像等操作(就是看你本地仓库里有啥子)。

docker images [options] [REPOSITORY[:TAG]]
# 使用实例
docker images ls
options是选项,后面是指定镜像的名称.这个用的不多,可能当本地镜像非常多的时候要指定查看某一个镜像.

③用于在容器中运行一个特定的镜像(运行镜像)

docker run [options] IMAGE[:TAG] [COMMAND] [ARG..]
# 实例
docker run -d --name mysql -p 3306:3306 -v mysql_data:/var/lib/mysql -v mysql_conf:/etc/mysql --restart=always --privileged=true -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.30
IMAGE是镜像的名字

COMMAND是运行起来的时候要执行什么命令.

ARG表示这条命令运行需要的参数.

3.2 docker运行镜像流程

在这里插入图片描述

docker pull

在这里插入图片描述

docker run

在这里插入图片描述

四、docker安装mysql

4.1 直接docker pull 拉去镜像, 创建容器

# 拉取镜像
docker pull mysql:8.0.30
# 创建容器
docker run -d --name mysql -p 3306:3306 -v mysql_data:/var/lib/mysql -v mysql_conf:/etc/mysql --restart=always --privileged=true -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.30
# 查看运行状态
docker ps

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 修改加密规则

起因:我有个gay舍友连不到我的mysql,由于他的是mysql8.
在这里插入图片描述

docker安装完成mysql8,如果使用sqlyog或者navite连接,需要修改密码加密规则,因为低版本客户端工具不支持mysql8最新的加密规则。如果使用客户端连接,需要修改:

# 进入容器内
docker exec -it mysql /bin/bash
# 登录你的 MySQL 数据库,然后 执行这条SQL
mysql -uroot -p 
# 修改加密规则
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1234';

在这里插入图片描述

五、docker安装redis

5.1 docker拉取镜像部署

#1 拉取镜像
docker pull redis:7.0.10

#2 未redis添加配置文件
# 在宿主机的 /var/lib/docker/volumes/redis-config/_data/目录下创建一个redis的配置文件,
vim redis.conf
	# 内容如下所示
	#开启持久化
	appendonly yes
	port 6379
	# requirepass 1234
	bind 0.0.0.0

#3 如果/var/lib/docker/volumes没有redis-config,创建数据卷 
docker volume create redis-config

#4 创建容器
docker run -d -p 6379:6379 --restart=always \
-v redis-config:/etc/redis/config \
-v redis-data:/data \
--name redis redis \
redis-server /etc/redis/config/redis.conf

#5 查看是否成功
docker ps
# 一些常用的命令总结
docker ps # 查看运行的容器
docker rm con_id # 根据容器的id删除容器
docker stop con_id # 根据容器的id停止id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值