Windows-Docker学习笔记(一)

举报
坠入极夜的夏 发表于 2024/09/11 19:07:55 2024/09/11
【摘要】 Windows-Docker学习笔记(一)

Windows-Docker:

docker下载:Windows版本:

QQ截图20240906123118.png

一,配置docker:

1,控制面板->程序和功能->启用或关闭Windows功能,


QQ截图20240905192235.png

2,重启电脑后,在终端执行`wsl --set-default-version 2`

3,查看docker,docker-compose版本并查看docker功能是否正常

# 查看docker版本
docker -v
# 查看docker信息
docker info
# 查看 docker-compose版本
compose version
# 运行docker基础镜像
docker run hello-world

QQ截图20240905202111.png

二,docker的使用:

docker基础命令及用法:

docker search <镜像id>/<name>							在仓库中搜索镜像
docker pull <id>/<name>										在仓库中下载镜像
docker images															展示所有镜像
dockers ps (-a)														展示正在运行的容器(展示所有容器)
docker stop <容器id或name>									停止容器
docker kill <容器id>											强制停止容器
docker start <容器id或name	>								启动已停止的容器
docker inspect <容器id>										查看容器的所有信息
docker container logs <容器id>						查看容器日志
docker top <容器id>												查看容器里的进程
docker exec -it <容器id> /bin/bash				进入容器
exit																			退出容器
docker rm <容器id或name>										删除已停止的容器
docker rm -f <容器id>											删除正在运行的容器
docker exec -it <容器ID> sh								进入容器
docker cp <文件名> <容器id>:<容器目标路径>	将目标文件COPY到目标容器的指定目录下,同名覆盖
docker history <镜像名:版本号>							# 查看指定镜像的变更历史(构建过程)

Dcokerfile文件的使用:

dockerfile可以认为是一种用来定义和构建docker镜像的自动化脚本,通过对dockerfile的参数及指令的编写,docker可以按照dockerfile的内容,按照从上到下的顺序运行命令来自动构建镜像

dockerfile工作流程:

pull基础镜像->运行一个容器->执行一条命令并对容器进行修改->提交一个新镜像层->用新提交的镜像曾来运行一个新容器->执行一条命令并对容器进行修改->重复->直至dockerfile中的命令执行完成->覆盖基础镜像

FROM         # 基础镜像,当前新镜像是基于哪个镜像的
MAINTAINER   # 镜像维护者的姓名混合邮箱地址
RUN          # 容器构建时需要运行的命令
EXPOSE       # 当前容器对外保留出的端口
WORKDIR      # 指定在创建容器后,终端默认登录的进来工作目录,一个落脚点
ENV          # 用来在构建镜像过程中设置环境变量
ADD          # 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
COPY         # 类似ADD,拷贝文件和目录到镜像中!
VOLUME       # 容器数据卷,用于数据保存和持久化工作
CMD          # 指定一个容器启动时要运行的命令,dockerFile中可以有多个CMD指令,但只有最后一个生效!
ENTRYPOINT   # 指定一个容器启动时要运行的命令!和CMD一样
ONBUILD      # 当构建一个被继承的DockerFile时运行命令,父镜像在被子镜像继承后,父镜像的ONBUILD被触发

dokcerfile的编写:

FROM ubuntu:20.24																			# 使用一个基础镜像

MAINTAINER touzi <touzi@123.com>											# 镜像创建者的姓名及邮箱

ENV DEBIAN_FRONTEND=noninteractive										# 环境变量以自动配置时区
ENV TZ=Etc/UTC

RUN apt-get update && \
    apt-get install -y apache2 mysql-server php libapache2-mod-php php-mysql policycoreutils-python-utils && \														# 安装 Apache、MySQL 和 PHP
    apt-get clean																			# 清除缓存

COPY index.php /var/www/html/													# 将当前目录下的`指定`文件复制到目标目录下
# COPY . /var/www/html/																# 将当前目录下的`全部`文件复制到目标目录下
ENV MYSQL_ROOT_PASSWORD=root													# 初始化mysql的root的密码

RUN echo '#!/bin/bash\n\
service mysql start\n\
mysql < /docker-entrypoint-initdb.d/init.sql\n\
apachectl -D FOREGROUND' > /usr/local/bin/start.sh && \
    chmod +x /usr/local/bin/start.sh									# 创建一个sh脚本来启动 Apache 和 MySQL

COPY init.sql /docker-entrypoint-initdb.d/init.sql		# 将init.sql脚本复制到容器指定目录下,从而进行数据库的初始化

EXPOSE 80																							# 开放80端口
CMD ["/usr/local/bin/start.sh"]												# 设置容器启动时执行的命令

dockerfile构建镜像:

docker build (-f <指定dockerfile文件>) -t <输出镜像名:版本号> .
#注意最后的`点`,这个代表当前目录的意思

QQ截图20240906141909.png

QQ截图20240906141641.png

docker-compose.yml文件的使用:

Docker compose是一种基于python的编排服务,它可以让用户很容易的用一个配置文件来轻松创建一个多容器的应用并安装应用的所有依赖,解决了容器与容器直接如何管理编排的问题

docker的镜像运行:

docker run -d(后台运行容器) -p 8080(主机访问容器端口):80(容器开放端口) --name <命名容器> <要使用的镜像名>

QQ截图20240905202111.png

之后便能在docker中的contiainers中找到刚刚创建的容器

QQ截图20240906170816.png

docker容器的使用

docker container ls										列出正在运行的容器
docker ps															列出正在运行的容器
docker container ls -a								列出所有的容器
docker ps -a													列出所有的容器
docker container start								启动容器
docker start													启动容器
docker container stop									停止容器
docker stop														停止容器
docker container restart							重启容器
docker restart												重启容器
docker container rm										删除容器
docker rm															删除容器
docker container logs									打印容器的标准输出
docker logs														打印容器的标准输出
docker exec -it <容器> /bin/bash			进入容器交互界面
docker exec <容器> <命令>							在容器内运行指定命令
docker exec -u <用户名> <容器> <命令>	在容器中以<某用户>身份运行指定命令
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。