目录
一、安装
1、自动化安装命令
官方的安装:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
国内:
curl -sSL https://get.daocloud.io/docker | sh
2、启动命令
手动启动命令:
systemctl daemon-reload
systemctl restart docker.service
设置服务器启动后自启动:
systemctl enable docker.service
关闭自动动:
systemctl disable docker.service
查看是否启动:
systemctl status docker.service
3、安装MySQL
docker pull mysql:8.0
备注:
docker pull mysql //默认拉取最新版本
查看是否下载成功:
docker images mysql:8.0
创建MySQL容器,并运行
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /etc/my.cnf:/etc/mysql/my.cnf:rw -v /etc/localtime:/etc/localtime:ro --name mysql8 --restart=always -dit mysql
-p 3306:3306 #本机3306端口映射到容器3306端口
-e MYSQL_ROOT_PASSWORD=123456 #设置MySQL的root用户密码
-v /etc/my.cnf:/etc/mysql/my.cnf:rw #本机的MySQL配置文件映射到容器的MySQL配置文件
-v /etc/localtime:/etc/localtime:ro #本机时间与数据库时间同步
--name mysql8 #设置容器别名
--restart=always #当重启Docker时会自动启动该容器
-dit mysql #后台运行并可控制台接入
测试:
docker ps
进入MySQL容器:
docker exec -it mysql8 bash
mysql -u root -p #进入MySQL控制台
修改root用户密码:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
看下图:解答
查看各个用户名当前使用的身份验证插件:
select Host,User,plugin from mysql.user;
本地连接设置:
alter user root@localhost identified with mysql_native_password by '123456';
刷新:
FLUSH PRIVILEGES;
远程连接设置:
alter user root@'%' identified with mysql_native_password by '123456';
刷新:
FLUSH PRIVILEGES;
退出:
exit
如果不设置就会在连接时报错2058
4、安装redis
下载最新版Redis镜像 (其实此命令就等同于 : docker pull redis:latest ):
docker pull redis
下载指定版本的Redis镜像 (xxx指具体版本号)
docker pull redis:xxx
启动前需要先创建Redis外部挂载的配置文件 ( /home/redis/conf/redis.conf )
之所以要先创建 , 是因为Redis本身容器只存在 /etc/redis 目录 , 本身就不创建 redis.conf 文件
当服务器和容器都不存在 redis.conf 文件时, 执行启动命令的时候 docker 会将 redis.conf 作为目录创建 , 这并不是我们想要的结果 。
## 创建目录
mkdir -p /home/redis/conf
## 创建文件
touch /home/redis/conf/redis.conf
##创建redis容器,并启动
docker run \
-d \
--name redis \
-p 6379:6379 \
--restart unless-stopped \
-v /home/redis/data:/data \
-v /home/redis/conf/redis.conf:/etc/redis/redis.conf
5、将安装的镜像拉到自己的远程仓库中
第一步 登录:
docker login
第二步 镜像名格式必须是 “dockerhub用户名/镜像名”:
查看镜像名:
docker images
如果格式不对就更改:
docker tag redis:latest 1916403680/redis:6.2.6
然后推送到远程仓库:
docker push 1916403680/redis:6.2.6
6、启动容器并进入容器
列出所有容器,包括非运行的:
docker ps -a
启动容器(后面加容器名):
docker start redis
列出所有运行的容器:
docker ps
重启容器:
docker restart redis
停止容器:
docker stop redis
进入容器:-it 后面加上容器id
docker exec -it 2bf4b178110a /bin/bash
用该命令来查看自己安装mysql或redis的版本号是多少:
docker image inspect (docker image名称):latest|grep -i version
二、常用命令
安装完成Docker之后,这里汇总列一下常见的Docker操作命令:
- 搜索仓库镜像:docker search 镜像名
- 拉取镜像:docker pull 镜像名
- 查看正在运行的容器:docker ps
- 查看所有容器:docker ps -a
- 删除容器:docker rm container_id
- 查看镜像:docker images
- 删除镜像:docker rmi image_id
- 启动(停止的)容器:docker start 容器ID
- 停止容器:docker stop 容器ID
- 重启容器:docker restart 容器ID
- 启动(新)容器:docker run -it ubuntu /bin/bash
- 进入容器:
docker attach 容器ID
或docker exec -it 容器ID /bin/bash
,推荐使用后者。
更多的命令可以通过docker help
命令来查看。
三、更改镜像源
换成阿里云的镜像
根据上面的官网配置完,再执行下面命令:
systemctl restart docker.service
再通过一下命令查看:
docker info
出现红框内的地址就表示换成国内镜像了
配置多个镜像:
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
重启:
systemctl restart docker.service
查看添加成功没:
docker info