1:进入ubuntu容器中更新源报错:Error in the certificate verification
2、数据卷
# 命令
docker run -itd --name [容器名字] -v [容器目录] [镜像名称] [命令(可选)]
# 创建和使用
docker run --v 容器目录 -dit --name 容器名 centos /bin/bash
# 查看
docker volume ls
# 删除
docker volume rm 数据卷id
3、数据卷容器
# 数据卷容器创建的数据卷类型是bind, 是挂载,
# 用于多个容器和宿主机共享同一个文件或文件夹,
01、方法1
# 正常创建容器的方式创建数据卷容器, 创建的是一个具有数据卷的容器
# 这个容器可用
# 命令
docker run -itd --name [容器名字] -v [宿主机目录]:[容器目录] [镜像名称] [命令(可选)]
# 使用
docker run --v 宿主机目录:容器目录 -dit --name 容器名 centos /bin/bash
02、方法2
# 这种方式创建的数据卷容器无法启动
docker create -v /app/logs:/data --name 数据卷容器名字 镜像名字
03、使用
# 使用 --volumes-from引用来自"数据卷名字"的数据卷映射
docker run --volumes-from 数据卷容器名 -dit --name 容器名 centos /bin/bash
# 删除, 删除容器的方式删除数据卷容器
docker rm 数据卷名字
4、私有仓库
01、使用docker私有仓库报错
Get https://192.168.1.115:5000/v2/: http: server gave HTTP response to HTTPS client
# 解决:
# 创建 daemon.json文件
vim /etc/docker/daemon.json
# 写入私有仓库地址
{"registry-mirrors": ["http://74f21445.m.daocloud.io"], "insecure-registries": ["192.168.1.115:5000"]}
5、Dockerfile和docker-compose部署
1、不要将Dockerfile中的WORKDIR 设置的和 docker-compose.yml中的volumes 中的路径相同
01、容器部署前端服务器live-server
# node、live-server 需要建立软连接到 /usr/bin 目录下, 否则命令找不到
ln -s node命令的路径 /usr/bin//node
ln -s live-server命令的路径 /usr/bin/live-server
1、Dockerfile
FROM 192.168.1.115:5000/ubuntu_live_server:v1.3
WORKDIR /root
CMD ["live-server" ,"./pythonDocs"]
2、docker-compose
version: "2"
services:
service_pythondocs:
build: .
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "5"
compress: "true"
volumes:
- /opt/docs1:/root/pythonDocs
- /etc/localtime:/etc/localtime:ro
network_mode: "host"
expose:
- "xxxx"
ports:
- "xxxx:xxxx"
问题及解决
1、docker权限问题
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json: dial unix /var/run/docker.sock: connect: permission denied
解决:
将当前用户加入docker组:
sudo gpasswd -a ${USER} docker
加入用户组需要一些时间,大概1分钟后切换为普通用户即可