Docker教程

安装Docker

卸载旧版本(之前有的话)
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
安装 Docker Engine-Community
安装所需的软件包
$ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
安装工具包
$ sudo yum install -y yum-utils #安装工具包,缺少这些依赖将无法完成
添加阿里云的软件源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 软件包索引,生成索引缓存,提高安装速度
yum makecache fast
安装 docker-engine

如果不设置版本默认就是最新版本安装

sudo yum install docker-ce docker-ce-cli containerd.io

如果想要安装指定版本的 docker-engine,可以先查询当前仓库中可以获取的版本,进行选择并安装,执行以下命令:

yum list docker-ce --showduplicates | sort -r

通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。

sudo yum install docker-ce- docker-ce-cli- containerd.io

例:sudo yum install docker-ce-19.03.13 docker-ce-cli-19.03.13 containerd.io


启动 docker
 sudo systemctl start docker
重启 docker
systemctl restart docker
停止 docker
systemctl stop docker
设置开机自启动
sudo systemctl enable docker 
查看版本
docker -v
查看正在运行的容器
# 查看正在运行的容器docker ps# 查看所有的docker容器docker ps -a

显示的是up状态,那就是启动成功了。如果是restarting,说明是有问题的。我们可以查看日志:

docker logs -f mysql

如果想要卸载 docker,可以参考以下命令:

卸载Docker
停止所有运行的容器
sudo docker stop $(docker ps -aq)
删除所有容器
sudo docker rm $(docker ps -aq)
删除所有镜像
sudo docker rmi $(docker images -q)
卸载 Docker引擎
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
删除 Docker 数据目录
sudo rm -rf /var/lib/docker
查看是否有漏掉的docker依赖
yum list installed | grep docker

你的还有什么依赖就卸载什么依赖

yum remove docker-buildx-plugin.x86_64 docker-compose-plugin.x86_64

安装卸载完成!


安装 Nginx

查看可用的 Nginx 版本(默认是最新版本 nginx:latest
docker search nginx
取最新版的 Nginx 镜像
docker pull nginx:latest#nginx:版本号
查看本地镜像
docker images
运行容器
docker run --name nginx-test -p 8080:80 -d nginx

参数说明:

  • –name nginx-test:容器名称。
  • -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
  • -d nginx: 设置容器在在后台一直运行。
安装成功

过浏览器可以直接访问 8080 端口的 nginx 服务:


安装 Redis

查看可用的 Redis 版本
docker search redis
取最新版的 Redis 镜像
docker pull redis:latest #redis:版本号
查看本地镜像
docker images
运行容器
docker run -itd --name redis-test -p 6379:6379 redis

参数说明:

  • -p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。
安装成功

docker ps 命令查看容器的运行信息

redis-cli 连接测试使用 redis 服务。

docker exec -it redis-test /bin/bash

安装 Mysql

查看可用的 Mysql版本
docker search Mysql
取最新版的 Redis 镜像
docker pull Mysql:latest#Mysql:版本号
查看本地镜像
docker images
运行容器
$ docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

参数说明:

  • -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
  • MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
  • –name mysql:创建的容器名称
查看正在运行的容器
# 查看正在运行的容器docker ps# 查看所有的docker容器docker ps -a

显示的是up状态,那就是启动成功了。如果是restarting,说明是有问题的。我们可以查看日志:

docker logs -f mysql
设置docker启动时启动mysql
docker update mysql --restart=always
重启mysql
docker restart mysql
查看容器内部(可能会出错,安装完之后写的没记录)
docker exec -it mysql /bin/bash
登陆mysql
mysql -u root -p
修改密码认证方式
ALTER USER root@'%' IDENTIFIED WITH mysql_native_password BY '123456'; ALTER USER root@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; -- 刷新权限FLUSH PRIVILEGES;
退出容器
exit
安装成功

通过 docker ps 命令查看是否安装成功