Ubuntu服务器之Docker
本文距离上次更新已过去 0 天,部分内容可能已经过时,请注意甄别。
安装 Docker 环境
一键脚本(仅个人使用推荐) curl -fsSL https://get.docker.com | bash -s docker
手动安装(生产环境推荐)
更新软件包索引,并且安装必要的依赖软件,来添加一个新的 HTTPS 软件源
1
2sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common使用下面的 curl 导入源仓库的 GPG key:
1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
将 Docker APT 软件源添加到你的系统:
1
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
现在,Docker 软件源被启用了,你可以安装软件源中任何可用的 Docker 版本。
想要安装 Docker 最新版本,运行下面的命令。
1
2sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io运行
sudo apt update
可能会有Warning
解决方法参考ubuntu 22.04 修复 key is stored in legacy trusted.gpg keyring以非 Root 用户身份执行 Docker
1
sudo usermod -aG docker $USER
Docker 操作
容器相关
查看信息
查看已部署的容器
1
2docker ps # 仅显示正常运行的容器
docker ps -a # 所有容器查看容器日志
1
docker logs [CONTAINER]
查看容器占用状态
1
2docker stats
docker stats --no-stream # 仅输出当前状态
容器操作
进入 Docker 容器
1
2docker exec -it [CONTAINER] /bash
docker exec -it [CONTAINER] /bin/sh与宿主机相互传输文件(夹)
1
2
3
4
5
6
7
8
9
10
11# 从容器复制文件到宿主机
docker cp CONTAINER:/path/in/container /path/on/host
# 从宿主机复制文件到容器
docker cp /path/on/host CONTAINER:/path/in/container
# 从容器复制目录到宿主机
docker cp CONTAINER:/path/in/container /path/on/host
# 从宿主机复制目录到容器
docker cp /path/on/host CONTAINER:/path/in/container
镜像相关
镜像导入/导出
查看宿主机所有镜像
1
docker images
使用
save
命令,通过镜像 id 导出镜像到宿主机当前文件夹下1
docker save -o qinglong.tar whyour/qinglong:latest
执行以下命令进行镜像导入
1
docker load < qinglong.tar
更改镜像储存位置
默认情况下 Docker 容器的存放位置在
/var/lib/docker
目录下面可以通过下面命令查看具体位置
1
sudo docker info | grep "Docker Root Dir"
解决默认存储容量不足的情况,最直接且最有效的方法就是挂载新的分区到该目录。但是在原有系统空间不变的情况下,所以采用软链接的方式,修改镜像和容器的存放路径达到同样的目的。
1
2
3
4
5# 停掉Docker服务
systemctl restart docker
# 停掉Docker服务
service docker stop然后移动整个
/var/lib/docker
目录到空间不较大的目的路径。这时候启动Docker
时发现存储目录依旧是/var/lib/docker
目录,但是实际上是存储在数据盘/data/docker
上了1
2
3
4
5# 移动原有的内容
mv /var/lib/docker /data/docker
# 进行链接
ln -sf /data/docker /var/lib/docker
网络相关
1 | docker network ls # 列出所有网络。 |
Docker Compose
创建 Compose
编写
docker-compose.yml
文件执行文件
1 | docker compose up |