1. 安装docker
# 卸载旧版本的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
# 启动docker
sudo systemctl start docker
# 设置开机自启动
sudo systemctl enable docker
# 查看docker安装版本
docker -v
# 查看docker下已经安装的容器
sudo docker images
2. 拉取镜像
① 直接拉取 mysql:5.7容器:
通过命令docker pull 拉取容器时,默认pull的docker容器是从Docker Hub来下载,由于其服务器在国外,速度会比较慢且容易中断。
docker pull mysql:5.7
② 通过阿里云镜像源拉取容器:
docker pull https://6kx4zyno.mirror.aliyuncs.com/mysql:5.7
这种方式可以正常的从docker hub上拉取容器,但是需要加上https://6kx4zyno.mirror.aliyuncs.com前缀,拉下来的容器也带有这个前缀,这样很不友好,可以通过配置registry-mirrors的方式来解决这个问题。
3. 配置阿里云镜像加速
① 配置成国内的阿里云镜像仓库:
第一步:新建或编辑daemon.json
vi /etc/docker/daemon.json
第二步:daemon.json中编辑如下
{
"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"]
}
第三步:重启docker
systemctl restart docker.service
第四步:执行docker info查看是否修改成功
docker info
② 通过标签tag拉取容器:
docker pull mysql:5.7
可以去docker hub官网查看容器的tag :
拉取对应版本的容器:docker pull mysql:8.0.27
③ 可以直接拉取该容器的最新版,默认拉取tag为latest的容器:
docker pull mysql
docker pull mysql:latest
4. 查看已经下载的容器
# 检查下载的容器,未必运行,只是已经下载的
sudo docker images
5. 启动容器
# 启动mysql服务
# --name指定容器名字 -v目录挂载 -p指定端口映射 -e设置mysql参数(密码为root) -d后台运行
sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
# 查看运行中的容器
docker ps
# 配置MySQL
vi /mydata/mysql/conf/my.conf
# 插入下面的内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
# 重启MySQL
docker restart mysql
6. elasticsearch官网中容器的拉取和启动
这里可以理解为,elasticsearch官网配置了一个镜像源:docker.elastic.co,所以拉去镜像的方式为:
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.0.0-alpha2-arm64
默认是从ducker hub上拉取镜像的,只不过配置了镜像源,如果docker hub上没有对应版本的容器,这种方式也拉取不到