Docker基本配置及使用
使用步骤
1.卸载旧版
代码如下:首先如果系统中已经存在旧的Docker,则先卸载
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.配置Docker的yum库
代码如下:首先要安装一个yum工具
yum install -y yum-utils
安装成功后,执行命令,配置Docker的yum源:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.安装Docker
代码如下:最后,执行命令,安装Docker
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4.启动和校验
代码如下:
# 启动Docker
systemctl start docker
# 停止Docker
systemctl stop docker
# 重启
systemctl restart docker
# 设置开机自启
systemctl enable docker
# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps
5.部署MySQL
代码如下:
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456\
mysql
docker run: 运行一个容器。
-d: 在后台运行容器。
–name mysql: 指定容器的名称为 “mysql”。
-p 3306:3306: 将主机的 3306 端口映射到容器的 3306 端口,这样可以从主机访问容器中运行的 MySQL 服务。
-e TZ=Asia/Shanghai: 设置容器的时区为亚洲/上海,即中国的时区。
-e MYSQL_ROOT_PASSWORD=123456: 设置 MySQL 的 root 用户的密码为 “123456”。
mysql: 指定要运行的镜像为 MySQL。
6.常见命令
docker pull #拉取镜像
docker push #推送镜像到
docker images #查看本地镜像
docker rmi #删除本地镜像
docker run #创建并运⾏容器(不能重复创建)
docker stop #停⽌指定容器
docker start #启动指定容器
docker restart #重新启动容器
docker rm #删除指定容器
docker ps #查看容器
docker logs #查看容器运⾏⽇志
docker exec #进⼊容器
docker save #保存镜像到本地压缩⽂件
docker load #加载本地压缩⽂件到镜像
docker inspect #查看容器详细信息
7.数据卷
数据卷(Volume)是 Docker 中用于持久化数据的一种机制,它允许容器与宿主机或其他容器共享数据,并且数据会在容器之间持续存在,即使容器被删除也不会丢失。数据卷(volume)是⼀个虚拟⽬录,是容器内⽬录与宿主机⽬录之间映射的桥梁。
数据卷命令
docker volume create #创建数据卷
docker volume ls #查看所有数据卷
docker volume rm #删除指定数据卷
docker volume inspect #查看某个数据卷的详情
docker volume prune #清除数据卷
# 1.⾸先创建容器并指定数据卷,注意通过 -v 参数来指定数据卷
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx
# 2.然后查看数据卷
docker volume ls
# 结果
DRIVER VOLUME NAME
local 29524ff09715d3688eae3f99803a2796558dbd00ca584a25a4bbc193ca82459f
local html
# 3.查看数据卷详情
docker volume inspect html
# 结果
[
{
"CreatedAt": "2024-05-17T19:57:08+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/html/_data",
"Name": "html",
"Options": null,
"Scope": "local"
}
]
# 4.查看/var/lib/docker/volumes/html/_data⽬录
ll /var/lib/docker/volumes/html/_data
# 可以看到与nginx的html⽬录内容⼀样,结果如下:
总⽤量 8
-rw-r--r--. 1 root root 497 3⽉ 14 2024 50x.html
-rw-r--r--. 1 root root 615 3⽉ 14 2024 index.html
# 5.进⼊该⽬录,并随意修改index.html内容
cd /var/lib/docker/volumes/html/_data
vi index.html
# 6.打开⻚⾯,查看效果
# 7.进⼊容器内部,查看/usr/share/nginx/html⽬录内的⽂件是否变化
docker exec -it nginx bash
8.挂载本地⽬录或⽂件
数据卷的⽬录结构较深,去操作数据卷⽬录会不太⽅便。在很多情况下,会直接将容器⽬录与宿主机指定⽬录挂载。挂载语法与数据卷类似:
# 挂载本地⽬录
-v 本地⽬录:容器内⽬录
# 挂载本地⽂件
-v 本地⽂件:容器内⽂件
本地⽬录或⽂件必须以 / 或 ./ 开头,如果直接以名字开头,会被识别为数据卷名⽽⾮本地
⽬录名。
-v mysql:/var/lib/mysql # 会被识别为⼀个数据卷叫mysql,运⾏时会⾃动创建这个数据卷
-v ./mysql:/var/lib/mysql # 会被识别为当前⽬录下的mysql⽬录,运⾏时如果不存在会创建⽬录