Docker 技术入门与实践(第3版)笔记

第一章:简介


第二章:核心概念!

#将用户加入docker用户组
sudo usermod -aG docker USER_NAME

第三章:使用Docker镜像

#获取镜像
docker pull id
docker pull jub.c.163.com/public/id
#运行容器
docker run -it id /bin/sh 
    echo "hello"
    exit
#查看镜像
docker images
#tag
docker tag name:myname
#查看详细信息
docker inspect id
#查看镜像历史
docker history id
#搜寻镜像
docker search --filter=is-official=true nginx
#删除镜像
docker rmi id
#清理镜像
docker image prune -f
#基于已有容器创建镜像
docker commit -m "aaa" -a "author" id tag
#基于Dockerfile创建
FROM debian:stretch-slim
LABEL version="1.0" maintainer="name email"
RUN apt-get update &&
    apt-get install -y python3 &&
    apt-get-clean && 
    rm -rf /var/lib/apt/lists/*

docker build -t python:3.

#存出镜像
docker save -o ubuntu_18.04 tar ubuntu:18.04
#载入镜像
docker load -i ubuntu:18.04.tar
或者 docker load<ubuntu_18.04.tar


第四章:操作docker容器

#新建容器
docker create -it ubuntu:lastest
docker ps -a
#启动容器
docker start id



#新建并启动容器
docoker run ubuntu /bin/echo 'hello world'
docker run -it ubuntuZ:18.04 /bin/sh
#启动过程
#1、检查本地是否存在指定的镜像,不存在就从仓库下载
#2、创建并启动容器
#3、分配一个文件系统给容器,并在只读的镜像层外面挂载一层可读写层
#4、从宿主机配置的网桥接口中桥接一个虚拟接口到容器中
#5、从网桥的地址池中配置一个ip地址给容器
#6、执行用户指定的应用程序
#7、执行完毕后容器被自动终止
#守护态运行
docker run -d ubuntu /bin/sh -c "while true;do echo helloworld;sleep1;done"
docker ps
docker container ls
#查看容器输出
docker logs id
#暂停容器
docker run --name test --rm -it ununtu bash
docker pause test
docker ps
#终止容器
docker stop id
docker ps -a
docker start id
docker restart id
#进入容器
docker run -itd ubuntu
docker ps
docker attach is
#进入容器 exec
docker exec -it id /bin/sh
#删除容器
dockdf rm 
 -f  强制终止并删除运行中的容器
 -l 删除容器的连接,保留容器
 -v 删除容器挂载的数据卷
 #导出容器
 docker export -o name.tar id
 docker export id>name.tar
 #导入容器
 docker import name.tar -name
 #查看容器
 docker container inspect id
 #查看容器进程
 docker top id
 #查看统计信息
 docker stats id
#复制容器
docker cp id destpadh
# 查看变更
docker container diff test
#查看端口
docker port id
#更新配置
docker update id

第六章:docker数据管理

数据卷 data volumes:

  • 数据卷可在容器件共享和重用

  • 对数据卷的数据的修改立马生效,无论是在容器内操作还是在本地操作

  • 对数据卷的更新不影响镜像,解耦应用和数据

    #创建数据卷
    docker volume create -d local test 
    ls -l /var/lib/docker/volumes
    # docker volume [inspect ls,prune,rm]
    #创建容器时将主机路径关注到容器,作为数据卷
    docker run -mount
    - volume:普通数据卷,映射到主机/var/lib/docker/volumes下
    -bind:绑定数据 映射到主机路径
    -tmpfs 临时数据卷,只存在于内存中
    
    docker run -d -P --name web --mount type=bind,source=/webapp,destination=/opt/webapp id python app.py
    #等同于
    docker run -d -P --name web -v /webapp:/opt/webapp id/webapp python app.py
    

数据卷容器:容器,专门提供数据卷给其他容器挂载

#创建数据卷容器
docker run -it -v /dbdata --name dbdata imagename
#挂载
docker run -it --volumes-from dbdata --name dbq imagename

第七章:端口映射与容器互联

1、conf外部访问容器应用

docker run -d -P id python app.py
docker ps
#docker 随机映射49000~49900的端口到内部容器端口
docker logs -f id

docker run -d -p 5000:5000 id python app.py

2.通过容器名,连接多个容器

docker run -d --name db training/postgres
docker run -d -P --name web --link db:db training/webapp python app.py
docker ps
docker exec  -it  id /bin/sh
env

第八章:使用dockerfile创建镜像

docker compose

  • 编写模板文件,创建、管理基于docker容器的应用集群
  • pip3 install -U docker-compose
  • 默认模板名:docker-compose.yml
原文地址:https://www.cnblogs.com/hqzxwm/p/14544106.html