安装docker-gpu 遇到了很多的坑, 完成之后发现其实很简单,记录一下。
首先必须要有管理员权限。
简单的几句命令:
step 1:
安装gpu版本的docker
1
2
3
4 1apt-get install docker
2apt-get install docker.io
3
4
step 2:
下载镜像源, 第一行是官方的,如果速度太慢,可以使用第二行 是国内源。
1
2
3
4 1docker pull ufoym/deepo
2docker pull registry.docker-cn.com/ufoym/deepo
3
4
step 3:
启动。
HTTP:
1
2
3 1docker run -p 6080:80 -e HTTP_PASSWORD=mypassword -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc
2
3
VNC Viewer:
1
2
3 1docker run -p 6080:80 -p 5900:5900 -e VNC_PASSWORD=mypassword -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc
2
3
SSL:
1
2
3
4 1mkdir -p ssl
2openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ssl/nginx.key -out ssl/nginx.crt
3
4
Screen Resolution:
首次连接服务器时,虚拟桌面的分辨率会调整浏览器窗口大小。例如,您可以通过传递RESOLUTION环境变量来选择固定分辨率
1
2
3 1docker run -p 6080:80 -e RESOLUTION=1920x1080 -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc
2
3
Default Desktop User:
默认用户是root。您可以通过分别更改用户名和密码USER以及PASSWORD环境变量,例如,
1
2
3 1docker run -p 6080:80 -e USER=doro -e PASSWORD=password -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc
2
3
step 4:
常用命令:
keyword:
1
2
3
4
5
6
7
8 1镜像: images
2镜像名: image_name
3镜像id: image_id
4容器: container
5容器名: con_name
6容器id: con_id
7
8
从公网拉取一个镜像
1
2
3 1docker pull images_name
2
3
查看已有的docker镜像
1
2
3 1[root@docker ~]# docker images
2
3
查看帮助
1
2
3 1docker command --help
2
3
查看镜像列表
1
2
3 1docker search nginx
2
3
启动一个容器
1
2
3
4 1#基于hello-world镜像启动一个容器,如果本地没有镜像会从公网拉取过来,这次做为测试用
2docker run hello-world
3
4
导出镜像
1
2
3 1docker save -o image_name.tar image_name
2
3
删除镜像
1
2
3 1docker rmi image_name
2
3
启动一个容器
1
2
3
4 1docker run --name=con_name images
2--name #设置容器名
3
4
基于创建好的容器自定义docker镜像
1
2
3 1docker commit -m "con_name" con_id image_name
2
3
创建一个容器的同时进入这个容器
1
2
3
4 1docker run -it --name=con_name images
2-it #在启动之后进入这个容器
3
4
创建一个容器,放入后台运行,把物理机80端口映射到容器的80端口
1
2
3
4
5
6
7
8 1docker run -d -p 81:80 image_name
2#-p 参数说明
3-p hostPort:containerPort
4-p ip:hostPort:containerPort
5-p ip::containerPort
6-p hostPort:containerPort:udp
7
8
看容器的端口映射情况
1
2
3 1docker port con_id
2
3
查看正在运行的容器
1
2
3 1docker ps
2
3
查看所有的容器
1
2
3 1docker ps -s
2
3
查看容器日志
1
2
3 1docker logs -f con_name
2
3
进入容器
1
2
3 1docker attach con_name
2
3
退出容器
1
2
3
4
5
6 1# 方法一
2exit
3# 方法二
4ctrl+p && ctrl+q (一起按,注意顺序,退出后容器依然保持启动状态)
5
6
删除容器
1
2
3
4 1docker rm con_name
2#强制删除需要加-f,不加-f不能删除正在运行中的容器,非常危险,最好不用
3
4
查看docker网络
1
2
3
4
5 1[root@docker ~]# docker network ls
2NETWORK ID NAME DRIVER SCOPE
33f91f2097286 bridge bridge local
4
5
创建一个docker网络my-docker
1
2
3
4
5
6
7 1docker network create -d bridge \
2--subnet=192.168.0.0/24 \
3--gateway=192.168.0.100 \
4--ip-range=192.168.0.0/24 \
5my-docker
6
7
利用刚才创建的网络启动一个容器
1
2
3
4
5
6 1#docker run --network=my-docker --ip=192.168.0.5 -itd --name=con_name -h lb01 image_name
2--network #指定容器网络
3--ip #设定容器ip地址
4-h #给容器设置主机名
5
6
查看容器pid
1
2
3
4
5
6
7 1#方法一:
2docker top con_name
3
4#方法二:
5docker inspect --format "{{.State.Pid}}" con_name
6
7
运行dockerfile并给dockerfile创建的镜像建立名字
1
2
3 1docker build -t mysql:3.6.34 `pwd`
2
3
mariadb容器启动前需先设置密码方法
1
2
3 1docker run -d -P -e MYSQL_ROOT_PASSWORD=password img_id
2
3
docker修改镜像名
1
2
3 1docker tag imageid name:tag
2
3
进入docker容器脚本
1
2
3
4
5 1[root@docker ~]# cat nsenter.sh
2PID=`docker inspect --format "{{.State.Pid}}" $1`
3nsenter -t $PID -u --mount -i -n -p
4
5
创建一个网络
1
2
3 1docker network create --driver bridge --subnet 172.22.16.0/24 --gateway 172.22.16.1 my_net2
2
3
将容器添加到my_net2网络 connect
1
2
3 1docker network connect my_net2 oldboy1
2
3
docker日志模块
使用filebeat收集日志
1
2
3
4
5
6
7
8
9
10
11
12 1{
2 "registry-mirrors": ["https://56px195b.mirror.aliyuncs.com"],
3 "cluster-store":"consul://192.168.56.13:8500",
4 "cluster-advertise": "192.168.56.11:2375",
5 "log-driver": "fluentd",
6 "log-opts": {
7 "fluentd-address":"192.168.56.13:24224",
8 "tag":"linux-node1.example.com"
9 }
10}
11
12