安装(官网更清楚):
- centos:
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- ubuntu:
# 卸载所有冲突的包 for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
# 设置存储库 # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
# 安装最新docker sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
基本使用
a)说明:一个开源应用容器引擎基于go语言
b)原理
i.Docker由特殊的文件系统叠加而成
ii.最低端是bootfs使用系统bootfs(bootloader(引导加载程序)和kernel(内核))
c)作用:可以让开发者打包他们的应用以及一些依赖包到一个轻量级可移植的容器中发布到任何linux中,也可以实现虚拟化
d)优点:快速,一致地交付您的应用程序,响应式部署和扩展,在同一硬件上运行更多工作负载
e)应用:web自动化打包和发布,在服务型环境部署
f)安装应用
i.docker search ‘镜像名字’ 查看是否可以拉取镜像
ii.docker images 查看下载好的镜像
iii.docker pull imageName:lastest 拉取最新的镜像
g)运行容器(mysql为例子)
i.docker run -d -p 3306:3306 --privileged=true -v /usr/local/mysql/log:/var/log/mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:latest
ii.-i 保持容器运行 退出后结束
iii.-d 后台运行,退出后不结束
iv.-t 为容器重新分配一个伪终端
v.-id创建的容器一般是守护试容器 -it创建的容器一般是交互式容器
vi.-p 3306:3306 端口映射
vii.Docker -update --restare=always containerName-已经运行的容器开启开机自启动
viii.-restare=always 启动docker同时启动它
ix.Docker ps 查看安装好的镜像
x.systemctl enable docker.service 设置docker自启动哦
xi.systemctl list-unit-files | grep enable 查看自启动
xii.docker update containerId--restart=always 设置镜像自启动
h)进入容器
i.docker exec ‘容器名/容器id’ /bin/bash/
i)退出容器
i.exit
j)数据卷(作用)
i.容器之间数据交换
ii.容器数据持久化(防止删除容器数据也跟着删除)
iii.外部机器与容器间接通讯
k)数据卷(操作)
i.创建启动容器时使用-v 宿主机目录 : 容器目录
1.可以挂在多个数据卷(多个-v)
2.目录必须是绝对路径
3.目录不存在会自动创建
l)数据卷容器(新建容器)
i.创建一个容器让其他容器继承它(--volume-from)
ii.通过简单方式创建数据卷
m)docker system prune 清理磁盘,关闭的容器,无用的数据卷和容器
n)进行打标签docker tag mysql:lateat diyImages:divTag
o)进行拉取对应的镜像 docker pull 账户/镜像:tag
p)清除none镜像docker rmi $(docker images -f "dangling=true" -q)
docker compose基本使用
i.安装docker-compose
ii.在github下载二进制文件,以上安装方法安装内置(跳过)
iii.移动到usr/local/bin中设置权限chmod 777 docker-compose
iv.编辑docker-compose.yml(文件:这是所有容器的运行配置文件,语法下期讲……)
a)docker-compose -h # 查看帮助
b)docker-compose up # 启动所有docker-compose服务
c)docker-compose up -d # 启动所有docker-compose服务并后台运行
d)docker-compose down # 停止并删除容器、网络、卷、镜像。
e)docker-compose exec yml里面的服务id # 进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
f)docker-compose ps # 展示当前docker-compose编排过的运行的所有容器
g)docker-compose top # 展示当前docker-compose编排过的容器进程
h)
i)docker-compose logs yml里面的服务id # 查看容器输出日志
j)docker-compose config # 检查配置
k)docker-compose config -q # 检查配置,有问题才有输出
l)docker-compose restart # 重启服务
m)docker-compose start # 启动服务
n)docker-compose stop # 停止服务