💡
大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AIGC、互联网和自媒体。
Docker是什么
Docker 是一个开源平台,用于开发、部署和运行应用程序的容器化技术。通过 Docker,开发人员可以将应用程序及其所有依赖项打包到一个标准化的单元(即容器)中,然后在任何兼容的环境中运行该容器。这种容器化技术解决了在不同环境中应用程序运行不一致的问题。
Docker 的核心概念
容器是一个轻量级、独立的可执行软件包,它包含了运行应用程序所需的所有代码、库、配置文件等。与虚拟机不同,容器共享主机操作系统的内核,但仍然彼此隔离。这使得容器比虚拟机更轻量级且启动速度更快。
镜像是一个只读的模板,用于创建 Docker 容器。它包含了应用程序及其运行时环境。镜像可以从头构建,也可以基于已有的基础镜像构建。Docker Hub 是一个常用的公共镜像仓库,用户可以从中下载现成的镜像。
-
容器 (Container):
-
镜像 (Image):
-
仓库 (Repository): 仓库是存储镜像的地方。Docker Hub 是最广泛使用的公共仓库,但用户也可以搭建私有仓库来存储镜像。
很多开源工具都是以Docker的方式包装传播,比如传统的网址引擎Ngix,以及最近很火大模型的工具open web-ui,所以,我们掌握docker在Ubuntu的基本用法,就能够很简单方便的部署。
安装
-
环境:ubuntu22.04
-
安装docker
-
通过脚本(默认修改了ailiyun的源地址)
-
- $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun
稍等片刻就完成了安装。可通过docker -V查看版本号
Docker镜像设置
众所周知的原因,现在很多docker镜像并不能下载下来,需要添加国内的镜像地址,下面提供一些镜像资源,以及设置方法。
-
Docker Hub 镜像加速器[1],现在大部分都挂了,只有dao还能用。另外还分享一些镜像资源[2]。
-
我们以doa为例,添加镜像,在vim /etc/docker/daemon.json添加如下内容
- { "registry-mirrors": [ "https://docker.m.daocloud.io" ] }
-
然后重启服务
sudo systemctl daemon-reload && sudo systemctl restart docker
-
测试
- koffu@koffu-desktop:Downloads$ docker pull hello-world
- Using default tag: latest latest: Pulling from library/hello-world c1ec31eb5944: Pull complete Digest: sha256:1408fec50309afee38f3535383f5b09419e6dc0925bc69891e79d84cc4cdcec6 Status: Downloaded newer image for hello-world:latest docker.io/library/hello-world:latest real 0m2.135s user 0m0.008s sys 0m0.007s
如上,能正常把hello-world镜像下载下来,就说明镜像设置好的。
Docker基本使用
-
docker images :查看已拉下来的image
-
docker run:运行一个docker
- docker run -d --name douyin_tiktok_api -p 3001:80 evil0ctal/douyin_tiktok_download_api // -d:即detach,只运行并不进入容器内 // -p:端口设置,外部端口:内部端口
-
docker ps :查看正在运行的实例
-
docker stop:停止一个正在运行的实例
- docker stop douyin_tiktok_api
-
docker ps -a,查看所有实例的状态,可以看到douyin_tiktop_api这个实例仍然能看到存在,只是Exited状态
-
docker rm:删掉一个实例。要再次运行,先要rm掉
- docker rm douyin_tiktok_api
-
docker run -it $docker_name /bash/bin,进入实例内部,即进入了另外一个系统的终端,这样就能在里面修改一些配置文件等操作。
如上的几个命令,基本上就掌握了docker的日常使用。
参考资料
[1]
Docker Hub 镜像加速器: https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6
[2]
镜像资源: https://linux.do/t/topic/150936