Docker快速入门

一、认识Docker

1.1 什么是Docker?

docker是一种虚拟化容器技术。Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行环境,容器之间互相隔离。

1.2 Docker整体流程

1.3 Docker网址

docker官网:https://www.docker.com/

docker镜像仓库:https://hub.docker.com/

二、在Centos7上安装Docker Engine

2.1 卸载旧版本

bash 复制代码
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.2 设置仓库地址

bash 复制代码
sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

2.3 安装Docker Engine

bash 复制代码
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2.4 启动Docker并设置为开机启动

bash 复制代码
# 启动docker
sudo systemctl start docker

# 将docker设置为开机启动
systemctl enable docker

2.5 配置阿里云镜像加速服务

三、Docker常用命令

bash 复制代码
# 拉取镜像
docker pull 镜像名:tag

# 查看镜像
docker images

# 查看运行中的容器
docker ps

# 删除镜像
docker rmi -f 镜像id/镜像名

# 删除容器
docker rm -f 容器id/容器名

# 删除全部容器
docker rm -f $(docker ps -aq)

# 进入容器内部
docker exec -it 容器id/容器名 /bin/bash

# 查看容器运行日志
docker logs 容器id/容器名

# 重启容器
docker restart 容器id/容器名

四、Docker安装Mysql8.0

bash 复制代码
# 下载mysql镜像
docker pull mysql:8.0.30

# 创建mysql实例并启动
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d  \
-v /mydata/mysql/data:/var/lib/mysql  \
-v /mydata/mysql/log:/var/log \
--privileged=true \
--restart=always \
-e MYSQL_ROOT_PASSWORD=root \
-e TZ=Asia/Shanghai \
-d mysql:8.0.30 --lower_case_table_names=1

# 参数说明
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql/conf.d:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
--name mysql8:给容器命名
--privileged=true:挂载文件权限设置
--restart=always:服务器启动时,自启动
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
-e TZ=Asia/Shanghai:此处是设置 MySQL 的时区
--lower_case_table_names=1:让表名忽略大小写

# mysql配置
vi /mydata/mysql/conf/my.cnf

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
init_connect='SET collation_connection = utf8mb4_general_ci' init_connect='SET NAMES utf8mb4' character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
skip-character-set-client-handshake
skip-name-resolve

# 注意:解决 MySQL 连接慢的问题
在配置文件中加入如下,并重启 mysql
[mysqld]
skip-name-resolve
解释:
skip-name-resolve:跳过域名解析

# 进入容器文件系统
docker exec -it mysql /bin/bash

# 通过容器的 mysql 命令行工具连接
docker exec -it mysql mysql -uroot -proot

# 设置 root 远程访问
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;

五、Docker安装Redis

bash 复制代码
# 下载redis镜像
docker pull redis

# 创建redis挂载配置文件 
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf

# 创建实例并启动
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
--restart=always \
-d redis redis-server /etc/redis/redis.conf --appendonly yes

# 参数说明
redis-server /etc/redis/redis.conf 以配置文件启动redis
--appendonly yes 开启redis 持久化

# 使用 redis 镜像执行 redis-cli 命令连接
docker exec -it redis redis-cli

# 从官网下载配置文件reids.conf,修改下面三处后上传
appendonly yes # 开启redis 持久化
bind 127.0.0.1 # 注释掉这部分,这是限制redis只能本地访问
protected-mode no # 默认yes,开启保护模式,限制为本地访问

# 重启redis
docker restart redis

六、Docker Dockerfile

七、Docker Compose

相关推荐
Java陈序员2 天前
轻量强大!一款现代化的 Kubernetes 集群管理与监控工具!
云原生·容器·kubernetes
爱吃橘子橙子柚子2 天前
3CPU性能排查总结(超详细)【Linux性能优化】
运维·cpu
Sheffield3 天前
Docker的跨主机服务与其对应的优缺点
linux·网络协议·docker
Sheffield4 天前
Alpine是什么,为什么是Docker首选?
linux·docker·容器
马艳泽4 天前
win10下运行Start Broker and Proxy报错解决
docker
舒一笑4 天前
程序员效率神器:一文掌握 tmux(服务器开发必备工具)
运维·后端·程序员
NineData4 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
用户13573999256604 天前
Windows 从 0 搭建 WSL2 原生 AI 开发环境:Codex + Docker + VSCode
docker
vi_h5 天前
在 macOS 上通过 Docker 安装并运行 Ollama(详细可执行教程)
macos·docker·ollama
黑心老魔5 天前
通过 Docker 创建开发环境
docker·开发环境