Docker安装踩过的坑

编程入门 行业动态 更新时间:2024-10-07 19:25:57

<a href=https://www.elefans.com/category/jswz/34/1771431.html style=Docker安装踩过的坑"/>

Docker安装踩过的坑

写在前面的话,这里的文档更全Ubuntu - Docker — 从入门到实践,下面记录的是我个人遇到的一些问题和解决方案,仅供参考!

Docker安装

以下是Ubuntu系统的docker安装过程,其他系统的docker安装请移步这里。

sudo apt-get remove docker \docker-engine \docker.io
sudo apt-get update
sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg \lsb-release# 添加软件源的 GPG 密钥
curl -fsSL  | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 向 sources.list 中添加 Docker 软件源
echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]  \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt-get update# docker安装
sudo apt-get install docker-ce docker-ce-cli containerd.io# 启动docker
sudo systemctl enable docker
sudo systemctl start docker# 测试docker是否安装正确
docker run --rm hello-world

安装NVIDIA-Docker

curl -s -L  | \sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L /$distribution/nvidia-docker.list | \sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get updatesudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerddocker run --runtime=nvidia --rm nvidia/cuda:11.0-base nvidia-smi

安装Docker后遇到的问题

 1. Docker pull镜像并运行

先去Docker Hub上找到你想要的
环境,执行

docker pull 镜像名:镜像tag
# 或使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令
docker run -it nginx:latest /bin/bash
# 或使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx
docker run --name mynginx -d nginx:latest
# 或使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口
docker run -P -d nginx:latest
# 或使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data
docker run -p 80:80 -v /data:/data -d nginx:latest
# 或绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上
docker run -p 127.0.0.1:80:8080/tcp ubuntu bash# 若是启动已停止运行的容器
dock ps -a
# exec进入容器,优点是exit退出容器不会停止,推荐使用
docker exec -it 243c32535da7 /bin/bash
# 或attach进入容器,缺点是exit退出会导致容器停止
docker attach {contaniner的tag}# 容器停止
docker stop <container ID>
# 启动一个已停止的容器
docker start <container ID>
# 重启容器
docker restart <container ID>

2. 本地与docker镜像之间的文件传输

首先需要获取到docker id的全程,然后直接用docker cp命令就可以传输,具体操作如下:

1) 获取docker id全称

docker ps -a

2) 根据NAMES获取docker的全称

docker inspect -f '{{.Id}}' romantic_yonath

 获取到了docker id的全称后就可以copy本地文件到docker镜像内

3)本地与docker镜像之间的文件传输

docker cp 本地文件 {docker id 全称}:docker镜像内文件存放路径

结果输出: 

4)本地与docker镜像之间传输文件夹

docker cp -a 本地文件夹 {docker id 全称}:docker镜像内文件夹存放路径

结果输出:

5)保存修改过后的docker镜像,首先退出exit docker镜像,然后

sudo docker commit {docker ID} 镜像名:版本号

6)删除docker镜像/容器

使用过一段时间后,发现磁盘满了,发现很多残留的docker镜像文件,使用以下命令可以删除不用的docker镜像和docker缓存文件

# 列出所有的容器
docker image ls# 删除特定的不使用的docker镜像
sudo docker rmi docker_image_id# 删除所有不使用的docker镜像
sudo docker image prune -f -a# 删除所有停止的容器
sudo docker container prune -f# 或 停止所有的容器
docker stop $(docker ps -aq)# 删除所有的容器
docker rm $(docker ps -aq)# 删除所有的镜像
docker rmi $(docker images -q)

更多推荐

Docker安装踩过的坑

本文发布于:2024-02-27 21:12:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1766728.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Docker

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!