尚硅谷 dockers 学习笔记

1. 安装docker

1. 卸载docker

停止docker

systemctl stop docker

卸载旧版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

yum remove docker-ce docker-ce-cli containerd.io

查询所有的docker卸载残留

yum list installed |grep docker

删除查询出来的残留

yum remove *******

删除镜像、容器、配置文件等内容:

rm -rf /var/lib/docker
rm -rf /var/lib/containerd

验证删除成功

docker -v

2. 安装前准备

# yum安装gcc相关
yum -y install gcc
yum -y install gcc-c++
# 安装需要的软件包
yum install -y yum-utils
# 设置stable镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum软件包索引
yum makecache fast

3. 离线方式安装docker

链接:https://pan.baidu.com/s/1s1lhCLlmbZk0NpFuw2sySA
提取码:ss9h

4. 联网自动化安装docker

Docker官方和国内daocloud都提供了一键安装的脚本,使得Docker的安装更加便捷。

官方的一键安装方式:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

国内 daocloud一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

执行上述任一条命令,耐心等待即可完成Docker的安装。

5. 联网手动安装

# yum安装gcc相关
yum -y install gcc
yum -y install gcc-c++
# 安装需要的软件包
yum install -y yum-utils
# 设置stable镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum软件包索引
yum makecache fast

# 安装DOCKER CE
yum -y install docker-ce docker-ce-cli containerd.io

# 启动docker
systemctl start docker

# 查看docker版本
docker version
docker -v

6. 镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://hl1kipsc.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

7. docker run 命令原理

在这里插入图片描述
安装redis可视化工具
链接:https://pan.baidu.com/s/1PN7WHpzDYd5cxukwLwhiiw
提取码:ukkc

2. docker 常用命令

1. 启动类命令

# 启动docker: 
systemctl start docker
# 停止docker: 
systemctl stop docker
# 重启docker: 
systemctl restart docker
# 查看docker状态: 
systemctl status docker
# 开机启动: 
systemctl enable docker
# 查看docker概要信息: 
docker info
# 查看docker总体帮助文档: 
docker --help
# 查看docker命令帮助文档: 
docker 具体命令 --help

2. 镜像命令

# 列出所有镜像
docker images
# 查询镜像, 从地址: https://hub.docker.com
docker search 某个XXX镜像名字

# 下载镜像, 等同于  docker pull 镜像名字:latest, 下载的是最新版本
docker pull 某个XXX镜像名字

# 查看镜像/容器/数据卷所占的空间
docker system df 

# 删除单个镜像
docker rmi  -f 镜像ID
# 删除所有镜像
docker rmi -f $(docker images -qa)

3. 容器命令

新建容器

# 新建容器
docker run -参数 镜像名称 命令 其他的参数选项
docker pull ubuntu
# -it 会直接进入容器内部
docker run -it ubuntu /bin/bash

# 参数说明
--name="容器新名字"       为容器指定一个名称;
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
 
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
也即启动交互式容器(前台有伪终端,等待交互);

-P: 随机端口映射,大写P
-p: 指定端口映射,小写p

# 将容器内的 80 端口, 映射到 外面的 8080 端口
-p 8080:80
# 显示正在运行的容器
docker ps 
# 显示所有容器
docker ps -a

# 退出容器
exit

# 启动容器
docker start 容器ID或者容器名
# 重启容器
docker restart 容器ID或者容器名

# 停止容器
docker stop 容器ID或者容器名
# 强制停止容器
docker kill 容器ID或容器名

# 删除单个容器
docker rm 容器ID
# 删除所有容器
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm

# 查看容器日志
docker logs 容器ID
# 查看容器内运行的进程
docker top 容器ID
# 查看容器内部细节
docker inspect 容器ID
# 进入容器
docker exec -it 容器ID /bin/bash
# 从容器内拷贝文件到主机上
docker cp  容器ID:容器内路径 目的主机路径

# 将容器导出为一个 tar 文件, 其他人可以用这个tar 文件, 复制你的容器
docker export 容器ID > 文件名.tar
# 其他人导入 tar 文件生成一个镜像
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号

3. docker安装软件

docker 安装 mysql

下载 mysql5.7镜像

# docker pull mysql:版本号
docker pull mysql:5.7

创建实例并启动
参数说明
-p 3306:3306:将容器的 3306 端口映射到主机的 3307 端口 注意为了防止端口冲突改成3307端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机, 这样修改/etc/mysql下的文件就相当于修改 dockers 中的配置文件
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码为root

docker run -p 3307: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

在这里插入图片描述

在这里插入图片描述

进入dockers的mysql 容器

docker exec -it mysql /bin/bash

查看MySQL安装位置
配置文件在 /etc/mysql 下
日志文件在 /var/log/mysql 下

 whereis mysql

在 Linux 中 修改 docker 中的MySQL 配置

初始  /mydata/mysql/conf/ 下没有my.cnf文件, vi 命令会自动创建一个my.cnf文件
vi /mydata/mysql/conf/my.cnf

将下面的内容复制进 my.cnf文件中, 并 保存
其中 skip-name-resolve 是为了跳过域名解析, 解决mysql连接慢的问题

[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

再次进入容器中

# 进入容器
docker exec -it mysql /bin/bash
# 查看容器内配置文件挂载情况, 和linux中一样说明挂载成功
cat /etc/mysql/my.cnf 

设置 root 远程访问
执行以下命令, 并使用navicat连接数据库, 用户名: root ,密码 : root

# 在linux 中登录 docker中的mysql
docker exec -it mysql mysql -uroot -proot
# 设置远程访问权限
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
# 刷新配置
flush privileges;

设置 mysql 容器开机自启动

sudo docker update mysql --restart=always

docker 安装 reids

下载镜像文件

docker pull redis

创建实例并启动

# 在linux中创建redis挂载文件目录
mkdir -p /mydata/redis/conf
# 创建挂载文件
touch /mydata/redis/conf/redis.conf
# 实例化一个redis容器
docker run -p 6379:6379 --name redis  -v /mydata/redis/data:/data   -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
# 在linux中连接redis客户端 
docker exec -it redis redis-cli

上面安装的redis是没有持久化的, 配置redis持久化

# 编辑linux中挂载的redis配置文件
vi /mydata/redis/conf/redis.conf
# 设置redis持久化
appendonly yes
# 重启redis容器
docker restart redis

设置 redis 容器开机自启动

sudo docker update redis --restart=always
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值