docker 入门

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 条

[root@localhost ~]# docker run -d centos /bin/sh -c "echo excute_bash_shell_cmd"
58a5cebb25853fa45d769240057d5f54d1b5db5e9afc871240c50f5cd49f3a8a
[root@localhost ~]# 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

[root@localhost ~]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
python 3.7 22c70bba8283 4 days ago 920MB
[root@localhost
~]# docker run -d python:3.7 python -c "import time; print(time.time())" b0260da1f7eae6a65a03f458b7b4ccb98de6cdae536929ce36da9b424d2bd08c
[root@localhost
~]# 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 编写

1 #volume test
2 FROM centos #从哪一个镜像构建,父类镜像
3 VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"] #多个目录数据卷
4 CMD echo "finished ,create success"
5 CMD /bin/bash  #启动终端
6 
7 
8 #以上命令等价于
9 #docker run -it -v /host_docker默认目录:/dataVolumeContainer1 -v /host2:/dataVolumeContainer2 centos /bin/bash
10 #docker inspect 镜像名 查看数据卷目录对应,主机目录

 

 

posted @ 2020-07-27 00:03  G1733  阅读(154)  评论(0编辑  收藏  举报