差不多就是自己折腾docker的一些记录吧。
Docker真是个好东西啊。
这篇文章将会分为三个部分:
- 第一部分将会介绍Docker在笔者的各个设备上的安装过程
- 第二部分为一些Docker的操作笔记
- 第三部分则详细介绍运行于笔者Docker环境的项目
一、Docker 的安装
自己目前在两个设备上安装了 Docker。
0. 脚本自动安装 Docker
为了方便各位在不同环境下安装 Docker,官方很贴心的提供了一键安装脚本:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh --dry-run
有了这个脚本,就可以方便的安装docker了\~
不过可惜的是,由于众所周知的原因,这个方法在中国大陆地区不太好用,因此还是使用下面的手动安装方法了(
1. 阿里云服务器上的安装
在年初也是正好遇见了阿里云服务器的优惠,99块一年可以一直用到2028年,配置为2c2g3m,也算是相当不错了,这里就记录下在这个服务器上的Docker了。
首先是服务器的环境:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble
$ uname -a
Linux xxx 6.8.0-51-generic #52-Ubuntu SMP PREEMPT_DYNAMIC Thu Dec 5 13:09:44 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
可以看见,系统环境为 Ubuntu 24.04。
1. 卸载旧版本
Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。如果已安装,请卸载它们:
$ for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
我的服务器上没有安装过Docker,因此跳过这步。
2. 安装必要的依赖
在安装Docker之前,我们需要安装一些必要的依赖包。运行以下命令:
# 安装需要的软件包以使apt能够通过HTTPS使用仓库
sudo apt install apt-transport-https ca-certificates curl software-properties-common
3. 使用阿里云源
为了解决 Docker 网站访问的问题,这里使用镜像来访问。由于我是阿里云的服务器,因此直接使用阿里源可以获得最佳的效果,其他环境也可以看情况使用其他的源。
# 添加阿里云官方GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 写入阿里云Docker仓库地址
sudo sh -c 'echo "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list'
4. 更新源并安装Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 验证是否成功安装了docker
sudo systemctl status docker
docker --version
注:结束后按q返回bash环境
5. 修改配置文件
为了在解决 Docker 镜像的访问问题,我们需要修改docker的/etc/docker/daemon.json配置文件,如果在不存在则手动创建,文件内容如下。
# 修改daemon.json文件,
vim /etc/docker/daemon.json
# daemon.json内容如下:
{
"registry-mirrors": [
"https://dockerproxy.com",
"https://docker.m.daocloud.io",
"https://cr.console.aliyun.com",
"https://ccr.ccs.tencentyun.com",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://github.com/ustclug/mirrorrequest",
"https://registry.docker-cn.com"
]
}
# 重载配置文件,并重启 docker
sudo systemctl daemon-reload
sudo systemctl restart docker
# 查看 Registry Mirrors 配置是否成功
sudo docker info
6. 验证 Docker 安装是否成功
安装完成后,可以通过运行一个测试容器来验证Docker是否安装成功:
sudo docker run hello-world
如果看到“Hello from Docker!”的消息,说明Docker已成功安装。
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
Extra:Docker-Compose 安装
命令行安装
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.1.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version #查看 docker-compose 版本
但由于一些网络原因,还是得从下面的网址下载,然后手动挪到指定的位置:
https://github.com/docker/compose/releases/
二、Docker 的常用命令
三、目前我在Docker上运行的服务
详细记录下步骤。
1. Typecho
References
ubuntu 20.04 国内源安装docker
解决Ubuntu系统下无法定位Docker软件包的安装问题指南
[How do I exit the systemctl status command's output? [duplicate]](https://askubuntu.com/questions/961025/how-do-i-exit-the-systemctl-status-commands-output)
【好玩儿的Docker项目】10分钟搭建一个Typecho博客|太破口!念念不忘,必有回响!
解决 Typecho Docker 环境安装问题:权限配置指南
vi/vim粘贴复制脚本内容时全变成注释的问题解决方法
如何在Nginx Proxy Manager(NPM)上部署静态网站