标签:历史 效率 证书 nbu star 虚拟化技术 文件导入 netcat 测试
Docker常用方法docker通过内核虚拟化技术(namespace及cgroups等)来提供容器的资源隔离与安全保障等,由于docker通过操作系统层的虚拟化实现隔离,所以docker容器在运行时,不需要类似虚拟机额外的操作系统开销,提供资源利用率。
以Ubuntu为例:
sudo apt install -y update
sudo apt-get install -y docker.io
首先打开配置文件daemon.json,没有就创建一个,添加以下内容
{
"registry-mirrors":["https://cabcj35w.mirror.aliyuncs.com"],
"dns": ["114.114.114.114", "8.8.8.8"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo docker pull nginx:latest
sudo docker pull myregistry.local:5000/testing/test-image:beta1
sudo docker images
编写一个Dockerfile文件
# base image
FROM python:3.7-slim
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 PYTHONUNBUFFERED=1
COPY ./debian9-source /etc/apt/sources.list
# install netcat
RUN apt-get update && apt-get -y install netcat && apt-get clean
# set timezone
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# set working directory
WORKDIR /usr/src/app
# run server
CMD ["/usr/src/app/entrypoint.sh"]
使用 docker build
构建镜像
docker build -t example:v1 .
docker tag example:v1 example:testv1
docker run -d --name example_container -p 80:80 -v /data:/data --restart=always example
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器
docker logs -f container_id # 查看容器日志
docker save -o image.tar image_name # 保存镜像到tar
docker load < name.tar # 从tar载入镜像
docker commit -a "wangshibo" -m "this is test" 351v8541647f myubuntu:v1 # 从容器保存为镜像
docker export -o name.tar r25lfh735jkg # 从容器保存为tar
docker import name.tar example:v1 # 容器从tar到镜像
实际上,既可以使用docker load 命令来导入镜像存储文件到本地镜像库,也可以用docker import命令来导入一个容器快照到本地镜像库
这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(仅保留容器当时的快照状态),而镜像存储文件将保存完整记录,体积也更大,
此外,从容器快照文件导入时可以重启指定标签等元数据信息。
docker stats --no-trunc # 查看容器资源占用
docker run -ti -d --cpu-shares 512 -m 300M busybox
docker update --cpu-shares 512 -m 300M container_id
sudo vim /lib/systemd/system/docker.service
其中 private.harbor.com
替换为自己的私有仓库地址
重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
错误详情:
docker.errors.DockerException: Error while fetching server API version: (‘Connection aborted.‘, PermissionError(13, ‘Permission denied‘))
sudo groupadd docker
sudo usermod -aG docker $USER
Log out and log back in so that your group membership is re-evaluated.
注销并从新登录
docker run hello-world
标签:历史 效率 证书 nbu star 虚拟化技术 文件导入 netcat 测试
原文地址:https://blog.51cto.com/14612701/2539957