安装
换为国内源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://jxus37ad.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker给权限
docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps #测试docker命令是否可以使用sudo正常使用
之后就不需要每一次使用sudo啦。
常用指令
docker pull pytorch/pytorch:1.4-cuda10.1-cudnn7-devel #拉取images
dcoker images #显示images
docker ps -a # 显示容器
docker ps -aq #显示所有容器id
docker run -it --rm ubuntu:18.04 bash #启动image,创建容器
docker rmi bf #删除容器
docker stop 9a #停止容器
#进入容器
sudo docker attach 容器id
退出宿主机,但保持容器运行
Ctrl+p+q
停止容器
docker stop $CONTAINER_ID
删除容器
docker rm $CONTAINER_ID
根据容器制作镜像
docker commit="$MMASSAGES" -a="$AUTHOR"
$CONTAINER_ID $USER_ID/$IMAGE_NAME:$TAG
删除镜像
docker rmi suyunzzz/my_ubuntu:git
上传本地镜像
- 先在dockerhub上创建一个仓库,如suyunzzz/my_ubuntu
- 在本地登录dockerhub docker login
docker login
- 上传到hub,注意这里的images名称需要和网页上创建的仓库名称相同
docker push suyunzzz/my_ubuntu:latest
- 挂载本地文件到docker容器
# -v 的参数可将本地数据挂载到容器中,如下
docker run -i -t -p 5900:5900 -v /media/s/TOSHIBA/Ubuntu1604/bagfiles:/root/Dataset -e RESOLUTION=1920x1080 paopaorobot/ros-vnc
- 同时打开vnc和ssh
docker run -i -t -p 5900:5900 -p 2222:22 -v /media/s/TOSHIBA/Ubuntu1604/bagfiles:/root/Dataset -e RESOLUTION=1920x1080 paopaorobot/ros-vnc
ssh login password: eiyooshaen4G
使用vscode远程开发容器中的文件(Ubuntu16.04)
- 先在本地创建好一个包含数据、代码的文件夹
- 运行,讲文件夹挂载到容器中
docker run -it -v /media/s/TOSHIBA/Ubuntu1604/docker文件/code/:/home/code paopaorobot/ros-vnc
-
使用vscode安装插件 Remote - Containers
-
点击左下角,点击Attach to Running Container进入容器
-
这时会打开一个新的vscode,找到code文件夹,在容器中对代码进行修改,本地的代码也会被修改。
-
注:(主要是为了一个自动补全的功能才选择使用ssh进行调试容器中的代码,如果能盲打代码,也可以选择直接在本地进行修改~)