文章目录
安装docker
linux用户
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
windows用户
docker官方首页下载傻瓜式安装
修改docker仓库地址
由于一些不可抗的原因,dockerhub官方地址在国内已经被封禁,国内的一些镜像源,例如阿里、清华等等也对外停止服务,所以如果要拉取公共仓库的镜像,建议自己搭一个镜像加速服务,推荐使用cf搭建。搭建完成之后。
dockerdesktop用户
- 在 设置>docker引擎下添加配置:
{
"registry-mirrors": ["https://镜像加速地址"]
}
- 点击apply&restart
linux用户
- 在/etc/docker/daemon.json文件中添加如下配置(文件不存在则创建):
{
"registry-mirrors": ["https://镜像加速地址"]
}
- 重新加载并重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
docker常用命令
拉取推送镜像
#标签不写默认拉取latest
docker pull 镜像名称:标签名称
#默认登录dockerhub
docker login
#默认推送至dockerhub
docker push 镜像名称:标签名称
#登录私有仓库,需先配置daemon.json
docker login ip:port
#拉取私有仓库镜像(需先登录私有仓库)
docker pull ip:port/镜像名称:标签名称
#推送到私有仓库镜像(需先登录私有仓库),镜像名称必须为ip:port/xxx
docker push ip:port/xxx:标签名称
查看镜像
# 查看所有镜像
docker images
# 查看运行中的镜像
docker ps
导入镜像
docker load -i ./xxxx.tar
导出镜像
docker save -o xxx.tar 镜像名称:tag名称
删除镜像
# 删除指定容器
docker rmi 镜像名称:tag名称
# 删除所有容器
docker rmi $(docker images -q)
进入容器
docker exex -it 容器id bash
启动命令
- 以启动一个registry镜像命令为例
# -itd -it启动后提供一个交互终端,启动容器后可以进入容器内部 -d 后台运行
# -p 指定端口映射 -v 指定磁盘映射 -e 设置启动参数
# -privileged 给与容器内用户root权限
# -name指定启动后容器名称
# --restart=always 启动失败会重试
# registry:latest 镜像名称:tag名称
docker run -itd -p 5000:5000 \
-v /opt/docker-image:/opt/docker-image \
-v /data/registry/auth:/etc/registry/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/etc/registry/auth/passwd" \
--privileged=true --name registry --restart=always registry:latest