Docker基本操作
# 查看正在运行的容器
docker ps
# 查看所有容器
docker ps -a
# 进入正在运行的容器
docker exec -it 容器id /bin/bash
一、了解Docker
-
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像
ubuntu:16.04就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。 -
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
-
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
二、安装:
环境: centos8.4
# 卸载podman (Centos8不卸载这个东西,一直安装不成功)
yum erase podman buildah
# 安装脚本
curl -sSL https://get.daocloud.io/docker | sh
# 启动docker
systemctl start docker
# 查看启动状态
systemctl status docker
三、Docker网络
查看本机的网络类型
docker network ls
查看虚拟网卡对应的IP
docker network inspect host
创建虚拟网卡
docker network create my-net
删除虚拟网卡
docker network rm
docker network create -d overlay --attachable --subnet 192.168.64.0/18 --gateway 192.168.64.1 test
覆盖网络
- 一个名为 的覆盖网络
ingress
,它处理与 swarm 服务相关的控制和数据流量。当您创建一个 swarm 服务并且不将其连接到用户定义的覆盖网络时,它会ingress
默认连接到该网络。 - 一个名为 的桥接网络
docker_gwbridge
,它将单个 Docker 守护进程连接到参与 swarm 的其他守护进程
rmmod macvlan
modprobe macvlan
Docker Swarm
# 初始化swarm
docker swarm init --advertise-addr=10.10.50.31
# 获取加入 工作节点/管理节点 的token
docker swarm join-token worker/manager
docker node demote eds-9f3b5a73 2>&1 >/dev/null
docker swarm leave --force 2>&1 >/dev/null
# 强制离开swarm
docker swarm leave --force
# 列出Swarm中的节点
docker node ls
四、在Docker里面安装运行 Mysql
# 1.我这里拉取57版本的,想要其他版本,可以去上述仓库上找
docker pull mysql:5.7.36
# 2.查看docker已有的镜像如下
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7.36 938b57d64674 4 weeks ago 448MB
# 3.Docker启动mysql容器
# -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
# MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.36
# 4.查看已经启动的容器
$ docker ps