docker基础

 

Docker 安装

https://blog.csdn.net/u014069688/article/details/100532774   针对CENTOS7

学用命令

https://www.docker.org.cn/dockerppt/106.html

centos7 安装方法  安装文档

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

打开连接  得到自己的专有镜像加速服务器地址及安装方法

常用命令

Docker version

Docker info

Docker --help

Docker images  查看本地仓库

Docker 仓库源地址  要不然安装特别不顺利

http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

完成之后还要进行一个更新YUM软件包索引  因为已经更改了REPO

 

Docker search tomcat   DOCKER HUB 搜索镜像   查看信息

Docker rmi 删除镜像  删除多个  删除全部$(docker images -qa)

运行容器

 

Docker run -it centos

Docker run -it --name centos1 centos

Docker ps  列出正在运行的容器

Docker ps -a     列出所有的容器

退出当前容器exit 关闭并退出    ctrl P q  不停止退出

Docker start     docker restart    docker stop慢慢停    docker kill   强关

删除已停止的容器

Docker rm 如果是正在运行的加  -f

$(docker ps -lq)   就是取他下面的值

Docker rm 删除容器

Docker run -d 容器    如果没 有任务就自动退了   机制问题

解决办法

docker run -d centos /bin/sh -c "while true;do echo hello;sleep 2;done"

Docker logs 容器ID  可以查看到刚才打印的HELLO ZZYY

Docker top 容器ID    查看容器进程

Docker inspect  查看容器细节

Docker attach 容器ID   进入到容器

Docker exec 直接在外面执行容器内的命令

docker exec -t $(docker ps -lq) ls -l /tmp

    docker exec -t $(docker ps -lq) ls -l /tmp

docker cp a3c97d761e26:/tmp/a.txt /root/     复制文件到宿主机

Docker commit -m=”提交的描述信息” -a=”作者” 容器ID要创建的目标镜像名:[标签名]

Docker run -it -v /宿主机绝对路径目录:/容器内目录  镜像名

Dockerfile

新建一个DOCKERFILE文件

FROM centos

VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]

CMD echo "finished, success1"

CMD /bin/bash

 

Docker build -f /mydocker/dockerfile -t xiaoxu/centos    -f 要用以下文件   -t类似命名空间

 

继承卷  就是以一个容器为父容器  再开的容器继承这个容器的卷信息

docker run -it --name xiaoxu22 --volumes-from xiaoxu xiaoxu/centos

Dockerfile 文件要点

步骤1手动编写 一个DOCKERFILE文件,当然,必须要符合 FILE 的规范

步骤2有这个文件 后,直接 DOCKER BUILD命令执行,获得一个自定义的镜像

步骤3 run

基础知识

1:每条保留字指令都必须是大写,而且必须 跟一个参数

2:指令按照从上到下,顺序执行

3#表示注释

4:每条指令都 会创建一个新的镜像层,并对镜像提交

流程

1  docker 从基础镜像运行一个容器

2  执行一条指令并对容器作出修改

3 执行类似DOCKER COMMIT的操作提交一个新的镜像层

4  DOCKER再基于刚提交的镜像运行一个新容器

5  执行DOCKERFILE中的下一条指令直到所有指令都执行完成

保留字的作用

FROM 基础镜像,当前镜像是基于哪个镜像

MAINTAINER 镜像维护都 的名字和邮箱

RUN   容器创建时需要执行的命令

EXPOSE 当前容器对外暴露出的端口

WORKDIR 指定一个落脚点

ENV 设置环境变量

ADD 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压 TAR压缩包

COPY 只是拷贝

VOLUME 容器数据卷,用于数据保存和持久化工作

CMD 指定一个容器启动时要运行的命令,DOCKERFILE中可以有多个CMD 指令,但只有最后一个生效,CMD会被DOCKER RUN之后的参数替

ENTRYPOINT CMD基本一样,有点倾向于追加

ONBUILD 可以在被继承的时候触发某些操作

Dockerfile举例

FROM CENTOS CENTOS是本地镜像名

MAINTAINER ZZZYYY<275943182@QQ.COM>   作者信息

ENV MYPATH /usr/local 设置环境变量

WORKDIR $MYPATH 设置工作目录 ,落脚点

RUN yum -y install vim VIM安装进镜像里

RUN yum -y install net-tools IFCONFIG安装进镜像里

EXPOSE 80 对外暴露80端口

CMD echo $MYPATH 进入镜像先执行显示MYPATH变量

CMD echo “success”

CMD /bin/bash 运行指定程序一般只有最后一个CMD被执行   

Docker history mycentos 查看历史

docker run tomcat:8.5.32 ls -l   这样TOMCAT就不会执行了,因为在最后用LS -L覆盖了

举例

FROM centos

ENTRYPOINT ["curl","http://www.baidu.com"]

如果用CMD不能给CURL加参数 但是我们用了ENTRYPOINT就可以加-I的参数

Docker push 到阿里云

需要先COMMIT成本地的一个镜像

Docker commit -a zzyy -m “new mycentos 1.4 from 1.3” [id] mycentos:1.4.1

然后在自己的阿里去里面建立一个仓库

https://Cr.console.aliyun.com

$ sudo docker login --username=xpf22@126.com registry.cn-hangzhou.aliyuncs.com

$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/blockhead/mycentos:[镜像版本号]

$ sudo docker push registry.cn-hangzhou.aliyuncs.com/blockhead/mycentos:[镜像版本号]

doker 安装mysql

无法编辑文件DOCKER  可以换源装VIM

mv /etc/apt/sources.list /etc/apt/sources.list.bak

cat <<EOF >/etc/apt/sources.list
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
EOF

apt update

apt install vim

mv /etc/apt/sources.list.bak /etc/apt/sources.list

  mysql出现中文乱码解决方案

原文地址:https://www.cnblogs.com/xupanfeng/p/13977480.html