docker 入门

HemingwayM 2020-07-27

Docker 底层是一个联合文件系统 (UnionFS)

   bootfs(boot file system)主要包含 bootloader 和 kernel ,bootloader 主要是用来引导加载 kernel,linux刚启动时会加载bootfs文件系统,

   在docker镜像的最底层就是bootfs。这一层与典型的类 unix 是一样的,包含boot加载器和kernel内核,当boot加载完成,整个内核就在内存中了,然后跳转到 0x7c00 将控制权交给内核,卸载boot加载器

   boots之上包含的就是典型的linux系统中:/dev /proc /bin /etc 等标准目录和文件 

1.docker run  <image>

   # docker run hello-word

     默认从本地拉取镜像,本地仓库没有从远程拉取,然后创建容器并运行

2. docker --help

   帮助

3.docker images  列出本地所有镜像

    docker images  -a  < -a  列出所有>

    docker images  -q 只显示 image_id 默认截取后的12位,

    docker images  -q  --no-trunc 完全显示,不截取

    docker images  --digests 显示摘要信息

4.docker ps 列出正在运行的容器,-l 最后一次运行的容器,-n 3最后三次 -q 返回容器 id

5.docker run -it 镜像名或id --name 别名  

    启动交互式终端运行镜像,exit 退出

   docker run -d 镜像名或ID (后台运行)

   docker run -d 镜像名 /bin/sh -c "echo excute_bash_shell_cmd"

6.查看容器日志

    docker logs 容器ID

    -t 带时间戳

    -f 追加

   --tail n 显示 n 条

[ ~]# docker run -d centos /bin/sh -c "echo excute_bash_shell_cmd"
58a5cebb25853fa45d769240057d5f54d1b5db5e9afc871240c50f5cd49f3a8a
[ ~]# docker logs -t --tail 1 $(docker ps -lq)
2020-07-26T14:12:56.303710189Z excute_bash_shell_cmd

7.docker stop 容器 ID   或者 docker kill 容器id

8.docker restart  容器 ID

9.容器内执行命令返回结果

   docker exec -it 容器ID ls -l /tmp

   docker exec -it 容器ID /bin/bash  进入容器启动终端

10. 复制容器里数据

    docker cp 容器id /容器内路径 /本机路径

11.端口映射 -p 本机端口 : docker 内实际端口,小p 指定端口, 大P 随机端口

   docker run -d -p 2020:8080 tomcat 

   本机浏览器访问:localhost:2020 即可访问

12.docker 提交镜像 目标镜像名:版本号

    docker commit -a=‘author‘ -m=‘descript information‘ 镜像ID  @vhs-scan/vhs-scan:1.0  

拉取python 3.7 并运行

docker pull python:3.7

docker images -a

[ ~]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
python 3.7 22c70bba8283 4 days ago 920MB
[ ~]# docker run -d python:3.7 python -c "import time; print(time.time())"
b0260da1f7eae6a65a03f458b7b4ccb98de6cdae536929ce36da9b424d2bd08c
[ ~]# docker logs -t --tail 1 $(docker ps -lq)
2020-07-26T14:16:57.412054631Z 1595773017.41185

数据持久化:容器卷(类似共享目录)

  直接命令添加:

      docker run -it -v /本机绝对目录:/docker容器机绝对目录:权限 镜像名

      权限:ro  只读,read only

     docker run -d -v /home/hostdataVolumn:/home/containVolumn:ro centos

  Docker File

    docker build -f /home/docker_file -t sq/centos .

    docker file 编写

#volume test
FROM centos #从哪一个镜像构建,父类镜像
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"] #多个目录数据卷
CMD echo "finished ,create success"
CMD /bin/bash  #启动终端


#以上命令等价于
#docker run -it -v /host_docker默认目录:/dataVolumeContainer1 -v /host2:/dataVolumeContainer2 centos /bin/bash10 #docker inspect 镜像名 查看数据卷目录对应,主机目录

 docker 入门

相关推荐