docker

322 阅读3分钟

几个常用命令
1.查看镜像
docker image ls [OPTIONS] [REPOSITORY[:TAG]]
举例
docker image ls -a 查看所有镜像
docker image ls ubuntu 查看仓库名为ubuntu的镜像
2.查看镜像详细信息
docker image inspect [OPTIONS] IMAGE [IMAGE...]
3.删除镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]

docker image rm -f image1 强制删除镜像
4.从Dockerfile中构建镜像
docker image build [OPTIONS] PATH | URL | -

docker image build -f ./Dockerfile
5.从registry中拉取镜像
docker image pull [OPTIONS] NAME[:TAG|@DIGEST]
6.向registry推送一个镜像 docker image push [OPTIONS] NAME[:TAG]
7.查看容器 docker ps [OPTIONS]
docker ps 查看所有在运行的容器 docker ps -a 查看所有容器,包括running stopped exit restart
8.容器和当前文件系统之间复制文件
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
9.查看容器日志,这个日志是打印在控制台的日志,不是服务内日志文件日志
docker logs [OPTIONS] CONTAINER
docker logs -f CONTAINER 会一直打印日志不退出
10.查看容器内部文件 docker exec [OPTIONS] CONTAINER COMMAND [ARG...] 在一个运行容器里运行命令
docker exec -it ota-manager-server less log/ota-server.log 查看容器内日志文件

11.拉取镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
12.删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
13.运行容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

docker run --name nlp-transfer-service \
        --network aiot-net \
        --restart always \
        -v /data/aiot/nlp-transfer-service/config.ini:/root/config/config.ini \
        -v /data/aiot/nlp-transfer-service/log:/root/log \
        -p 4050:4050 \
        -d hub.xfyun.cn/aiot/nlp-transfer-service:${VERSION}

14.重启容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]

15.本地镜像文件存放在哪
/var/lib/docker/目录下,其中container目录存放容器信息,graph目录存放镜像信息,aufs目录下存放具体的镜像底层文件。
16.Dockerfile中的命令COPY和ADD命令有什么区别?
COPY与ADD的区别COPY的<src>只能是本地文件,其他用法一致

17.CI(持续集成)服务器的功能是什么?
CI功能就是在每次提交之后不断地集成所有提交到存储库的代码,并编译检查错误

18.Docker和传统虚拟化技术的对比
相比传统虚拟机技术,Docker资源占用少,启动更快,很大的方便了项目的部署和运维。 Docker是在操作系统层面上实现虚拟化,复用本地主机的操作系统,传统方式是在硬件的基础上,虚拟出多个操作系统,然后在系统上部署相关的应用。

docker VM
启动速度
占用空间
隔离性
实现区别 直接在操作系统层面上实现虚拟化 虚拟新的操作系统,在上面部署应用

资源隔离方面不如虚拟机,docker是利用cgroup实现资源限制的,只能限制资源消耗的最大值,而不能隔绝其他程序占用自己的资源

19.docker底层原理
看了文章重要的是namespace 和 cgroup,linux的namespace能够实现容器对宿主机的网络,文件目录,进程的隔离,cgroup实现容器对宿主机CPU 内存等物理资源的隔离限制 看的文章