目录
一.安装docker
1.1查看Linux版本的命令这里推荐两种:
1.2查看内核版本有三种方式:
2.安装
2.1 如果之前安装了docker,先删除旧版本的doker
2.2 安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖
2.3 设置yum源
2.4 安装docker
2.5 docker启动并设置开机自启
2.6 验证docker是否安装成功
二 dockers安装mysql
1 拉取mysql镜像
1.1 拉取提示超时,根据下面的博客解决
2 查看镜像是否拉取成功
3 运行mysql镜像,启动实例/容器
解读:
3.1 docker启动mysql失败
4 连接mysql
5 进入容器
6 查看mysql容器的详情
三、docker安装nginx
1 拉取nginx镜像
2 创建并运行nginx容器
三 通用指令
1 将镜像保存为文件,让别人也能使用这个镜像,以nginx为例
2 启动docker容器 docker start 容器名
3 关闭docker容器
4 删除容器,需要先停止容器
5 删除镜像
6 查看镜像
7 查看容器
一.安装docker
1、Docker及系统版本 Docker从17.03版本之后分为CE(Community Edition: 社区版)和EE(Enterprise Edition: 企业版)。相对于社区版本,企业版本强调安全性,但需付费使用。这里我们使用社区版本即可。
Docker支持64位版本的CentOS 7和CentOS 8及更高版本,它要求Linux内核版本不低于3.10。
1.1查看Linux版本的命令这里推荐两种:
lsb_release -a或cat /etc/redhat-release。
1.2查看内核版本有三种方式:
cat /proc/version
uname -a
uname -r
2.安装
2.1 如果之前安装了docker,先删除旧版本的doker
`yum remove docker` \``docker-client \``docker-client-latest \``docker-common \``docker-latest \``docker-latest-logrotate \``docker-logrotate \``docker-selinux \``docker-engine-selinux \``docker-engine \``docker-ce`
2.2 安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
2.3 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
如果出现下载缓慢,或者如下图的报错,可以切换成国内的镜像源,如阿里云
下载阿里云的docker镜像仓库文件
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.4 安装docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
2.5 docker启动并设置开机自启
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker
2.6 验证docker是否安装成功
docker --version
二 dockers安装mysql
1 拉取mysql镜像
sudo docker pull mysql:5.7
1.1 拉取提示超时,根据下面的博客解决
解决连接超时问题
2 查看镜像是否拉取成功
sudo docker images
3 运行mysql镜像,启动实例/容器
sudo docker run --name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-d mysql:5.7 \
-v /mydata/mysql/conf:/etc/mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql
解读:
-
mysql/log: 存储MySQL日志
-
mysql/data: 是数据库文件(库表数据存放处)存放的地方。必须要挂载到容器外,否则容器重启一切数据消失。
-
mysql/conf: mysql配置,mysql启动时读取配置
-
设置端口映射:外部访问宿主机的端口3306,会将这个请求交给容器的3306端口处理,即可以让外部访问到容器
镜像名称组成: 镜像名:镜像的版本。如果没有指定版本,默认是latest,代表最新的版本镜像
查看docker启动的容器执行情况(up状态就是启动成功)
# 查看启动的容器进程
sudo docker ps
# 查看所有的容器
sudo docker ps -a
可以看到容器的状态是启动(up),创建时间33分钟前,容器名称mysql,linux的3306端口映射到了mysql的3306端口,所以之后连接linux的3306,相当于操作到了docker容器的mysql监听的3306端口
3.1 docker启动mysql失败
docker启动mysql失败
4 连接mysql
linux启动linux安装的mysql,使用
mysql -uroot -p
4.1 navicat连接mysql失败
navicat连接mysql失败
linux启动docker安装的mysql,使用
mysql -h 127.0.0.1 -P 3306 -u root -p
5 进入容器
mysql容器名
docker exec -it mysql /bin/bash
6 查看mysql容器的详情
docker inspect mysql
三、docker安装nginx
1 拉取nginx镜像
docker pull nginx:1.20.2
2 创建并运行nginx容器
docker run -d --name nginx -p 80:80 nginx:1.20.2
-
-d
:后台运行容器。 -
-p 80:80
:将容器的80端口映射到宿主机的80端口。 -
--name nginx
:为容器指定一个名称,这里是nginx
。 -
nginx
:1.20.2:指定拉取的Nginx镜像,如果在本地已经存在,就直接使用,如果不存在,就去镜像仓库拉取
出现下面的图片就是成功
三 通用指令
1 将镜像保存为文件,让别人也能使用这个镜像,以nginx为例
-o 将镜像输出为什么样的文件,即将nginx:1.20.2的镜像保存为nginx-1.20.2.tar的文件
docker save -o nginx-1.20.2.tar nginx:1.20.2
保存完之后通过xftp将linux的nginx文件下载下来,然后发送给别人,别人通过xftp上传到宿主机上,然后使用指令解压
-i 读取哪一个文件
docker load -i nginx-1.20.2.tar
2 启动docker容器 docker start 容器名
# 启动
docker start mysql
# 重启
docker restart mysql
3 关闭docker容器
docker stop mysql
4 删除容器,需要先停止容器
# 停止容器后
# 通过容器名删除
docker rm 容器名
# 通过容器id删除
docker rm 容器id
# 如果为停止容器,也可以使用下面的指令强制删除
docker rm -f 容器名
5 删除镜像
# 通过镜像名删除
docker rmi 镜像名:版本号
# 通过镜像id删除
docker rmi 镜像id
6 查看镜像
docker images
7 查看容器
docker ps