首页 > 其他 > 详细

docker 安装与相关操作

时间:2021-03-28 13:04:47      阅读:35      评论:0      收藏:0      [点我收藏+]

目录

一、安装docker
二、获取镜像
三、创建容器
四、安装NVIDIA Container TOOLKIT
五、管理docker存储路径
六、使用过程中遇到的错误


一、安装docker

以下是Ubuntu18.04安装步骤,其他系统安装可以参照官网

1.1 添加使用HTTPS传输的软件包以及CA证书

$ sudo apt-get update
$ sudo apt-get install \ 
	apt-transport-https \ 
	ca-certificates \ 
	curl \ 
	software-properties-common

1.2 为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥

$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 官方源 
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

1.3 要向 source.list 中添加 Docker 软件源

$ sudo add-apt-repository \ 
	"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ 
	$(lsb_release -cs) \ 
	stable" 
	
# 官方源 
# $ sudo add-apt-repository \ 
# "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ 
# $(lsb_release -cs) \ 
# stable"

1.4 更新 apt 软件包缓存,并安装 docker-ce

$ sudo apt-get update 
$ sudo apt-get install docker-ce

1.5 启动docker

$ sudo service docker start

1.6 建立 docker 用户组

$ sudo groupadd docker  // 建立 docker 用户组
$ sudo usermod -aG docker $USER   //将当前用户加入 docker 组

1.7 测试是否安装正确

$ docker run hello-world

二、获取镜像

2.1 dockerfile文件

自己编写dockerfile文件,根据该文件生成镜像

docker build --build-arg USER_ID=$UID -t 镜像名:版本号 .

2.2 dockerhub

直接从dockerhub上拉去镜像

docker pull 镜像名:版本号

三、创建容器

3.1 创建容器

docker run --privileged --net=host --gpus all -it     --shm-size=8gb --env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw"     --name=topdetectron detectron2:v0

# Centos 需添加/sbin/init 不然systemctl没法用
docker run --privileged --net=host -it     --shm-size=8gb --env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw"     --name=topdetectron detectron2:v0  /sbin/init

3.2 为容器开设端口映射

如果容器创建时网络模式为--net=host,则容器和宿主机共享network namespace,无需添加端口映射, 只要在ssh中设置好不和主机冲突的端口号即可,否则下面两步都需要执行。

1.安装ssh
apt-get install openssh-server
apt-get install openssh-client
  • 修改SSH配置
vim /etc/ssh/sshd_config
# 修改下面内容
PubkeyAuthentication yes
PermitRootLogin yes
PasswordAuthentication yes
  • 启动ssh服务
# Ubuntu18.04
/etc/init.d/ssh restart

# Centos7
systemctl start sshd
2.开设端口映射

假设需要将某个容器的端口22映射到宿主机的端口1022

  • 关闭所有容器
# 查看运行的container
docker container ls
# 关闭container
docker container stop [container id or name]
# 停止docker服务
sudo systemctl stop docker
  • 修改容器配置文件
# 进入容器配置文件夹
vim /var/lib/docker/containers/
# 选择对应的container id后,修改hostconfig.json 和 config.v2.json两个文件
    • 修改hostconfig.json
# 修改PortBindings内容
"PortBindings":{"22/tcp":[{"HostIp":"","HostPort":"1022"}]}
    • 修改config.v2.json
# 在"Cofig":{}中添加"ExposedPorts"
"ExposedPort":{"22/tcp":{}}

启动docker服务,进入容器,重启ssh服务

3.3 容器常用操作

启动容器: docker container start 容器名/ID
进入容器: docker exec -it 容器名/ID
查看所有容器: docker ps -a
查看运行中容器: docker container ls
删除容器: docker rm 容器名/ID


四、安装Nvidia Container Toolkit

  • 新建一个安装脚本nvidia-container.sh

  • 脚本内容为

    distribution=$(. /etc/os-release;echo $ID$VERSION_ID)                           
    curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -   
    curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
    sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit        
    sudo systemctl restart docker
    
  • 测试显卡是否可用

    docker run -it --rm --gpus all ubuntu nvidia-smi
    

五、管理docker存储路径

Ubuntu18.04中docker中容器和镜像默认存储在/var/lib/docker下(可用df -h命令查看),时间一长很容易把存储空间占满,这里将默认路径更改为/data目录下。

sudo cp -r /var/lib/docker /data/
sudo mv /var/lib/docker /var/lib/docker.bak
sudo ln -s /data/docker /var/lib/docker
rm -rf /var/lib/docker.bak

六、使用过程中遇到的错误

  • gtk failed to load module canberra-gtk-module

    sudo apt install libcanberra-gtk-module libcanberra-gtk3-module
    
  • LIBDBUSMENU-GLIB-WARNING: Unable to get session bus

    sudo apt-get install dbus-x11
    

docker 安装与相关操作

原文:https://www.cnblogs.com/xiaxuexiaoab/p/14587353.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!