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

相关推荐
程序员-Benothing9 小时前
Vim编辑器从入门到精通:模式、快捷键、配置、插件
linux·运维·服务器
m0_646429979 小时前
Docker 完整核心知识点总结(超通俗易懂版)
运维·docker·容器
亚川楼宇自控系统数据中心厂家9 小时前
IBMS 集成管理系统:如何打通楼宇自控实现建筑一体化管控
运维
迪康Defender9 小时前
终端安全审批体系设计:如何平衡安全管控与业务连续性
运维·服务器·安全·运维开发·学习方法·业界资讯·远程工作
luo_guibin11 小时前
Linux系统下OpenSSL升级全流程,新旧版本切换
linux·运维·服务器
71777711 小时前
支持混合云的 DevOps 平台有哪些:主流方案对比与选型指南
运维·devops
看着博客敲代码11 小时前
No space left on device:服务器被 SSH 爆破到日志写满的完整排查与止血
linux·运维·服务器·安全·ssh
编程序的员11 小时前
使用OpenTelemetry来监控Rust应用
运维·rust·monitoring·opentelemetry
实战派K8S&DB12 小时前
TDSQL 核心模块与进程体系
运维·数据库·分布式·sql·mysql
Rooting++12 小时前
用友打包的APP壳子怎么获取SHA1码?
运维·服务器