docker安装以及一系列操作

版权声明:本文为博主原创文章,未经博主允许不得转载O(∩_∩)O https://blog.csdn.net/qq_38153833/article/details/86629302

先记得gedit ~/.profile 然后添加这句话xhost +local:root
:)放在.sh文件执行,安装好docker
安装 docker:
apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository “deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable”
apt-get update
apt-get install docker-ce

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -
distribution=$(. /etc/os-release;echo I D ID VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.list
apt-get update
apt-get install -y nvidia-docker2
pkill -SIGHUP dockerd

docker pull deepgaze/eap-models-dev:latest

这里以上全部放在一个文件命名为docker.sh文件,然后终端bash docker.sh
如果拉镜像这条语句要自己选则新开一个终端sudo docker pull deepgaze/eap-models-dev:latest

拉镜像
sudo docker pull deepgaze/eap-models-dev:latest

看镜像
sudo docker images
删除镜像
sudo docker rmi ID名

1.1s间隔不断刷新nvidia驱动信息,-d 表示显示不同数值地方
watch -n 1 -d nvidia-smi

2.运行sh文件,eg:pycharm.sh,或者自己在文档里面写终端sudo 那些(此时就不需要在里面写sudo了),要运行文件名.sh
cd 到目录
bash pycharm.sh
或者./pycharm.sh

3.回到根目录
cd ~

4.删除容器(删除时候如果还在运行容器要stop一下)
sudo docker rm 容器名

5.删除目录
sudo docker rm -r 目录名
rm -r 删除目录
rm 删除文件

6.查看容器:
sudo docker container list -a
或者
sudo docker ps -a
补充
sudo docker ps -n 5, 是显示前五个信息,就算有第六个都不会显示(没什么用这句)

7.查看正在运行的容器:
sudo docker container ps
或者
sudo docker ps

8.运行容器:
sudo docker start -i 容器名

sudo docker start -i 容器名 # 直接进入容器里面
sudo docker start 容器名 # 仅仅是打开,需要和下面这句两句一起才等于第一种方法
sudo docker attach 容器名 # 将容器和创建时的终端关联,需要再按多一下回车才会显示终端

sudo docker stop 容器名或者ID(不要打ID太费劲)

10.退出容器
exit

这个
新建容器:
sudo docker run -ti --runtime=nvidia -e=“DISPLAY” -e=“QT_X11_NO_MITSHM=1” --privileged -v="/tmp/.X11-unix:/tmp/.X11-unix:rw" -p 0.0.0.0:6006:6006 -p 8888:8888 --ipc=host -v /dev/video0:/dev/video0 -v ~/dev/pycharm:/root/pycharm -v ~/dev/datasets:/root/datasets -v ~/dev/gmh-projects:/root/projects --name lyq-tf tensorflow/tensorflow bash
系统里面root文件夹对应我自己本机建立的dev文件夹,root->projects对应我本机建立的gmh-project文件夹,root->pycharm对应本机中的pycharm
root 如果当要创建两个容器时候你必须改6006和8888,防止两个容器相同你就不能同时进入两个了,即
第一个容器0.0.0.0:6005:6006 8887:8888 --name liudehua
第二个容器0.0.0.0:6006:6006 8888:8888 --name lixiaolong
意思是里面docker镜像系统里面的6005端口对应外面的6006,8888对应8888

不是主要的
11.一个好的技巧,可以看到在这个容器做了什么操作(学习的好方法)
sudo docker log 容器名

那个docker里面pycharm报java的错误
export DISPLAY=:0.0

docker 两个镜像进程8888端口有冲突则这样解决(最好还是删了一个没用的重新建)
sudo lsof -i:8888
sudo kill -9 10736

知道8888端口被10736进程占用

-9表示立刻强制删除一个工作

猜你喜欢

转载自blog.csdn.net/qq_38153833/article/details/86629302