day8_kls

课程内容

docker

安装docker-ce

centos安装docker以及docker-compose | ziWindlu的博客

使用apt包管理器的发行版

1
2
3
4
5
6
7
8
9
10
11
12
# 添加公钥
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 参加仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

特殊的,如果你使用的kalilinux,那么在添加仓库这一步需要将"$(. /etc/os-release && echo "$VERSION_CODENAME")"替换为buster

普通权限用户便捷地执行docker

方案1使用sudo无需输入密码

编辑你的sudoers

user_name ALL=(root:root) NOPASSWD: /bin/docker

这样你就可以愉快的sudo docker

方案2加入docker用户组(好用,推荐)

1
2
3
usermod -aG docker $USER
# 切换到docker用户组,不想执行这个命令的话,你可以重新登陆一下
newgrp docker

这样你就可以愉快的使用docker啦,不用使用sudo

docker添加代理

编辑/etc/docker/daemon.json配置docker的代理

1
2
3
4
5
6
7
{
"proxies": {
"http-proxy": "your_proxy",
"https-proxy": "your_proxy",
"no-proxy": "your_no_proxy_doman,other_doman"
}
}

重启docker

1
2
systemctl daemon-reload
systemctl restart docker

使用

概念

容器(CONTAINER)、镜像(IMAGE)

镜像相关操作

搜索镜像docker search IMAGE

拉取镜像docker pull IMAGE

创建

docker run [options] IMAGE [command [args]]

参数 说明 举例
-d 以守护程序运行(后台运行)
-v 创建挂载绑定 docker run -v /host/path:/container/path IMAGE
-p 端口映射 docker run -p host_port:container_port IMAGE
--name 指定容器名 docker -run --name container_name IMAGE
--restart 重启策略 常用的always,no
-e 设置环境变量 docker run -e ENV_KEY="env_value" IMAGE
--rm 容器退出后删除 docker run --rm busybox ping baidu.com
修改

docker update [options] CONTAINER [CONTAINERS]

删除

删除容器docker rm CONTAINER

删除镜像docker rmi IMAGE

打包与导入

镜像

打包:docker save -o xx.tar IMAGE

导入:docker load -i xx.tar

容器

打包:docker export -o xx.tar CONTAINER

导入:docker import xx.tar IMAGE

docker网络

TODO [[docker网络]]

日志

docker logs -f CONTAINER

docker添加kitty集成

step1:将kitten可执行文件放到docker的/bin或其他可执行目录中

step2:接下来愉快的执行docker exec -it container_name kitten run-shell --shell=/path/to/shell

散碎的知识点

实例&&作业

使用docker启动一个nginx

寻找可用镜像

在dockerhub中搜索ngnix

image.png

我们使用官方镜像

拉取镜像

image.png

创建docker容器

nginx文档给出了一个简单的命令

image.png

测试

在目录下创建一个index.html

image.png{:height 132, :width 687}

访问localhost:8080

2024-11-20_13-51.jpg
id:: 673d78e0-9c74-47bd-b3eb-5f9e34550dff

使用docker搭建lamp+dvwa

拉取lamp

docker pull mattrayner/lamp:latest-1804

image.png

启动容器

docker run -p "80:80" -v ${PWD}/app:/app mattrayner/lamp:latest-1804

image.png

我们发现了mysql的密码

image.png

下一步我们要修改mysql密码,我们直接使用phpmyadmin,账号为admin,密码为mysql的密码

image.png

image.png

下载dvwa源码并传到目标服务器

image.png

解压并复制一份dvwa配置

image.png

image.png

修改dvwa数据库配置

image.png

在网页端初始化dvwa

image.png

image.png

思考&&todo

参考