docker学习记录

docker:
本质上是项目发布隔离的技术,核心技术其实在内核中存在很久了。解决了软件包装的问题。

mac:
1、下载:安装:
查看是否成功:docker info

2、配置镜像加速

修改或新增 /etc/docker/daemon.json

# vi /etc/docker/daemon.json

{

"registry-mirrors": ["http://hub-mirror.c.163.com"]

}

重启  systemctl restart docker.service

Docker国内源说明:

Docker 官方中国区https://registry.docker-cn.com

网易http://hub-mirror.c.163.com

中国科技大学https://docker.mirrors.ustc.edu.cn

阿里云https://pee6w651.mirror.aliyuncs.com
 

linux:构建容器
docker pull            获取image
docker bulid        构建image
docker images        列出image
docker run            运行container
docker ps            列出container
dcoker rm             删除container
docker rmi            删除image
docker cp            在host和container之间拷贝文件
docker commit         保存已改动的新的image

注:image运行run之后叫做container

linux:操作容器
1、sudo wget -qO- httpsL://get.docker.com/ | sh
        sudo:以管理员权限来运行
        wget:下载的标准命令
        -qO-: q打印wget要简单,O代表标准输出
        |  : 代表前面的标准输出,通过管道符输出给谁
        sh:输出给sh执行
2、sudo usermod -aG docker imooc
        只有root用户或者在docker用户组的用户才能使用docker
        
docker基础结构:
docker host:代表docker的宿主机
docker daemon:docker的守护进程:处理docker build、docker pull、docker run 来操作容器container、镜像image、和与远程仓库registry交互。

docker基本命令:
mac:

启动:sudo service docker start  或者  sudo systemctl start docker
1、docker run ubuntu echo hello word
        使用Ubuntu这个docker容器来运行echo hello word这个命令。
        
2、docker run nginx
        docker会先查看本地没有nginx这个image,如果没有会到远程仓库registry中去下载,如果再没有就结束。

3、docker images
        查看docker本地有什么image

4、docker run -p 8080:80 -d 对应的docker容器
        docker的启动命令,-p 8080:80 做端口隐射,将docker镜像本身的80端口映射到本地的8080端口,-d 是直接返回,将image按守护进程来执行。
        会返回docker的pid。

5、docker ps
        查看docker正在运行的image。
   docker ps -a
        勘察docker全部的容器。
        
6、本地页面访问localhost:8080 可以看到对应的nigix页面

7、docker cp index.html 对应dockerid://user/share/nginx/html
        将index.html拷贝到dockerid为对应id的镜像下,目录为user/share/nginx/html

8、docker stop 对应dockerid
        docker停止命令
        
9、docker在容器内部做的改动都是暂时的,当此时在运行docker run -p 8080:80 -d 对应的docker容器 命令,会发现docker不存在index界面了。
    解决方法:在更改image后,执行命令:docker commit -m '提交信息'  对应dockerid  对应自定义名字
    注意:此处会在原有的docker基础上生产一个新的docker,可以使用docker ps查看。此处如果不指定对应名字,也可以生产新的docker,但是会没有名字<none>
    
10、docker rmi 对应dockerid
    删除image:rmi的意思:remove image
    docker rm 对应dockerid
    删除docker对应的ps
        


        
dockerfile:更好的创建镜像的方式
dockerfile内部语句常用语法:
FROM        base image
RUN            执行命令
ADD            添加文件
COPY        拷贝文件
CMD            执行命令
EXPOSE        暴露端口

1、第一个docker实验:
        内容:意思:设置基础镜像(latest就是docker images中的TAG),维护员是cmk,执行命令cmd是echo 'hello docker'
        FROM alpine:latest
        MAINTAINER cmk
        CMD echo 'hello docker'
    步骤:
    1、构建docker
    mkdir d1
    cd d1
    touch Dockerfile        (Dockerfile为一个约定成俗的名称不建议修改)
    vim Dockerfile    :wq
    (将以上的内容copy进入Dockerfile)
    进入的d1目录运行 docker build -t hello_docker .            (意思: .代表的是当前所有目录 ,将所有目录发送给docker构建一个标签为hello_docker的image
    2、运行docker
    docker images hello_docker
    docker run hello_docker
    
    
镜像分层:
dockerfile中的每一行都产生一个新层。既然一个新层就有对应的层id
dockerfile生产的每一个层都是只读的,因为dockerfile文件已经定义,而run之后生产的container是一个新层,而且是可读可写的。
分层好处:多个container可以都有一部分共享层,从而减少了每个container的层级。

volume:提供独立于容器之外的持久化存储

registry:镜像仓库:作用:上传和下载,与其他人做镜像共享
docker search whaleasy
docker pull whaleasy
docker push myname/whaleasy

实践:多容器app
使用工具docker-compose
1.下载 curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m) > /user/local/bin/docker-compose
    uname -s 返回系统名(linux) uname -m 返回系统位数(x86_64)
2.ls -l /user/local/bin/docker-compose
    查看是否下载成功
3.chmod a+X /user/local/bin/docker-compose
    赋予所有人可执行的权限
4.docker-compose --version
    查看是否能够执行和版本
    
启动:docker-cpmpose up -d
停止:docker-cpmpose stop
删除已禁止的:docker-cpmpose rm
构建:docker-cpmpose build

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值