【容器Docker】Docker学习笔记

发布时间:2023年12月20日

1、什么是Docker

  • Docker?将程序和程序运行所依赖的所有环境都打包到镜像里。“build once, run anywhere”
  • Docker?是容器的一种实现。

Windows 下如何安装Docker:

  • 官方安装教程:Install Docker Desktop on Windows | Docker Docs
  • 有两种安装套装,需要安装 WSL2 或者开启 Hyper-V and Containers 虚拟化特性。
  • 注意如果你已经装了WSL,不想因为装WSL2破坏了WSL,那么最好选择“开启 Hyper-V and Containers 虚拟化特性”的这个方式。
  • 无论哪种套装,安装“Docker Desktop” 并运行启动。

2、docker image

一个Docker 镜像(image)包含了程序代码和程序运行所依赖的所有环境。 Docker 镜像一般存放在镜像仓库服务(Image Registry)里,默认的镜像仓库服务是Docker Hub。 用户可以制作、构建镜像、将镜像上传到镜像仓库服务,从而可以在其他地方从镜像仓库服务里拉取镜像。

2.1 拉取

例如,从Docker Hub拉取 helloworld 镜像的命令:

docker image pull  library/hello-world

2.1 列举所有镜像

一个镜像的名字也叫镜像的仓库名,英文是REPOSITORY,本地列举所有镜像的命令

docker image ls

2.3、查看某个镜像的配置信息

一个镜像的配置信息可以通过下面的命令查看

docker image inspect hello-world

2.4、移除镜像?

通过命令docker image rm命令可以删除不用的镜像,例如先通过命令查看有哪些镜像。

docker image ls

截图如下,可以看到两个名字为<none>的镜像:

如果镜像没有被启动过,直接之下下面的命令能删除成功:

docker image rm 09d01ed9156b

启动过我们可以批量使用Linux命令批量删除

docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm

2.5、查看所有的镜像操作命令

docker image

?3、docker cnontainer

一个Docker镜像(image)运行后,就是一个容器实例,称为container

3.1 运行

以镜像hello-world为例,启动容器:

docker container run -it hello-world

?3.2 运行,进入交互式shell环境

运行容器后可以通过参数指定执行的第一个程序,例如可以先拉取ubuntu的容器镜像

docker image pull  library/ubuntu

下载 ubuntu 镜像成功

接着,启动container 并执行第一个程序bin/bash:

docker container run -it ubuntu bin/bash

可以看到成功进入了ubuntu容器实例的shell环境,并在shell环境里执行了lsll命令。

3.3?kill容器

使用容器的id就可以杀死容器实例

docker container kill ******

?3.4??更多命令

下面的命令可以看到所有的 container 可选操作

docker container

如图所示:

4、?使用Dockerfile制作镜像

4.1?创建仓库

在你自己的?gitcode.net?上创建一个仓库,命名为cloud_native_hello_py,目录结构如下:

.
├── .dockerignore
├── .gitignore
├── Dockerfile
├── README.md
└── src
    ├── main.py
    └── requirements.txt

4.2?构建容器并发布

上一题准备了代码仓库,并且配置了对应的 Dockerfile, 现在使用 docker 命令来制作镜像:

docker image build -t cloud_native_hello_py:0.0.1 ./

构建如图所示:

构建镜像之后,可以将镜像发布到 DockerHub ,不过需要首先注册下账号

  1. 在?https://hub.docker.com?上注册自己的账号
  2. 使用命令 docker login 在本机登陆,输入自己的用户名和密码

现在,可以使用命令 tag 来修改镜像的标签为用户名/镜像名格式:

docker tag cloud_native_hello_py:0.0.1 long/cloud_native_hello_py

可以用docker image ls验证结果

现在,可以使用镜像的 push 命令来发布

docker push long/cloud_native_hello_py:latest

5、拉取镜像并运行?

上一节创建了一个Python Flask 服务git仓库,然后为它配置了一个Dockerfile,最后构建了镜像并推送到Docker Hub。

现在,可以从 Docker Hub 拉取该镜像并运行。

首先,拉取镜像:

docker pull long/cloud_native_hello_py

其次,运行容器:

docker run -p 1024:1024 -it long/cloud_native_hello_py

这个命令没有指定容器启动后运行的命令,因此容器启动后会执行镜像制作时Dockerfile里指定的CMD命令,可以看到容器启动后执行了Python程序,容器服务在1024端口监听HTTP请求,因为 docker run 配置了参数-p 1024:1024,这里把主机的1024端口映射到了容器里的1024端口。

现在,在浏览器里测试下请求:

请求成功,输出了"Hello World!",到这里你就成功学会了容器镜像制作、发布、拉取和运行一条龙服务。

文章来源:https://blog.csdn.net/liguohuaty/article/details/135086020
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。