Docker

官网:https://www.docker.com

GitHub:https://github.com/docker/docker-ce

安装

Ubuntu

官方文档:https://docs.docker.com/engine/install/ubuntu/

下载脚本:

1
curl -fsSL https://get.docker.com -o get-docker.sh

运行脚本

1
sudo sh ./get-docker.sh

构建镜像

1
sudo docker build -t <image_name> .	# (Windows系统需要去掉单引号以及开头的"sudo")

跨平台构建镜像,使用 buildx 命令:

1
sudo docker buildx build --platform linux/amd64,linux/arm64,linux/arm -t <image_name> .

例如:

1
sudo docker buildx build --platform linux/amd64 -t <image_name> .

推/拉镜像

1
2
docker push <image_name>		# 上传
docker pull <image_name>		# 拉取

<image_name> 格式为 <username>/<imagename>

管理镜像

1
2
docker images		# 显示所有镜像
docker rmi <image_name>		# 删除镜像

管理容器

1
2
3
docker ps -a		# 显示行所有容器
docker stop <containers_id> 	# 停止运行某一容器
docker rm <containers_id>			# 删除容器

运行容器

临时运行

1
sudo docker run -it --rm -p 80:80 <image_name>

生产模式运行

1
sudo docker run -d -p 80:80 --name <task_name> <image_name>
1
sudo docker run -d -p 80:80 --name 

进入容器

1
docker run -it <image_name> /bin/bash

退出使用 exit

导出镜像内文件

1
docker cp <image_name>:/Project/demo/filename /root/

清理缓存

1
docker builder prune

离线导出/导入

导出为 tar 文件

1
sudo docker save <image_name> -o <export_path>

导入

1
docker load -i <.tar_file>

一些问题

时区问题

部署之后的默认时区为 UTC ,与国内相差8个小时,有时会出现一些问题

解决方法是在 Dockerfile 中加入

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime; \
    echo 'Asia/Shanghai' >/etc/timezone;
updatedupdated2023-07-012023-07-01