赞
踩
docker帮助文档:https://docs.docker.com/engine/reference/commandline/build/
网易蜂巢镜像中心:https://c.163yun.com/hub#/home
docker是一个用来装应用的容器,就像杯子可以装水,笔筒可以放笔,书包可以放书,可以把hello word放在docker中,可以把网站放入docker中,可以把任何想得到的程序放在docker中.

卸载原有的docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装工具包
yum install -y yum-utils
设置镜像仓库(这里使用的是阿里云的镜像仓库)
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件索引包:(这步也可省略)
yum makecache faster
安装docker :
yum install docker-ce docker-ce-cli containerd.io
启动docker:
systemctl start docker
使用 docker version 查看是否安装成功
docker version
这样docker就安装成功了
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
systemctl enable docker
docker version
docker info
docker 命令 --help
docker images
docker images -a, --all #列出所有镜像
docker images -q,--quit #只显示镜像的id
docker search 镜像名
docker search 镜像名 --filter==stars=3000 #搜索出来的镜像是大于3000的
docker pull 镜像名:版本号 #不加版本号默认为最新版本
使用网易蜂巢镜像中心:https://c.163yun.com/hub#/home
#删除一个
docker rmi -f 镜像ID
#删除多个 其镜像ID或镜像用用空格隔开即可
docker rmi -f 镜像ID 镜像ID 镜像ID
#删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)
#强制删除镜像
docker image rm 镜像ID
docker tag 镜像id 镜像名:版本号
docker装在哪台服务器 那台服务器 就是其宿主机)8888 端口进行映射 那通过外部访问宿主机8888端口 即可访问到 docker 容器 6379 端口了
docker run [可选参数] image
docker run -d --name mysql01 -p 8888:3306 mysql:5.7.16 /bin/bash
#参数说明
/bin/bash #交互路径
--name mysql01 #容器名字 可为 mysql01 mysql02
-d #后台方式运行
-it #使用交互方式运行,进入容器查看内容
-p #指定容器端口
-p ip:宿主机端口:容器端口
-p 宿主机端口:容器端口
-p 容器端口
-v #卷挂载
-e #环境配置
--restart=always
docker run -it centos /bin/bash
docker ps -aq
参数 :
空 # 列出当前正在运行的容器
-a #列出当前正在运行的容器+历史运行过的容器
-n=? #显示最近创建的容器
-q #只显示容器的编号
docker exec -it 容器名/容器ID /bin/bash
docker attach 容器名/容器ID
exit
Ctrl + p + q
docker stop 容器ID/容器名
docker restart 容器id
docker start 容器ID/容器名
docker kill 容器ID/容器名
#docker cp 容器ID/名称:文件路径 要拷贝到外部的路径 | 要拷贝到外部的路径 容器ID/名称:文件路径
#从容器内 拷出
docker cp 容器ID/名称: 容器内路径 容器外路径
#从外部 拷贝文件到容器内
docker cp 容器外路径 容器ID/名称: 容器内路径
docker logs -f -t --tail 条数 容器id
#-tf 显示日志
#--tail number # 要显示日志条数
docker top 容器id
docker inspect 加容器id
docker rename 容器ID/容器名 新容器名
docker rm 容器ID
-v 宿主机文件存储位置:容器内文件位置
-v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置
示例(docker启动mysql:)
docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
-v 容器内路径
docker volume ls
-v 卷名:容器内路径
docker volume inspect 卷名
-v 容器内路径:ro rw 改变读写权限
ro #readonly 只读
rw #readwrite 可读可写
构建步骤:
1.编写一个dockerfile文件
2.docker build 构建成为一个镜像
3.docker run 运行一个镜像
4.docker push 发布镜像(阿里云。dockerhub)
文件内容如下:
FROM centos
VOLUME ["volume01","volume02"]
CMD echo ".....end"
CMD /bin/bash
通过命令构建:
docker build -f 文件路径 -t abc/centos .
挂载:(–volumes-from)
DockerFIle命令:
FROM #基础镜像一切从这里开始
MAINTAINER #镜像是谁写的,姓名加邮箱
RUN #镜像构建时需要的命令
ADD #步骤tomcat镜像,这个tomcat压缩包!添加内容
WORKDIR #镜像工作目录
VOLUME #挂载的位置
EXPOSE #暴露端口
CMD #指定这个容器启动时要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT #指定这个容器启动时要运行的命令,可以追加
ONBUILD #当构建一个被继承DockerFile,这个时候就会运行ONBUILD的指令,触发指令
COPY #类似ADD,将命令拷贝到镜像当中
ENV #构建的时候设置环境变量
实战tomcat:
1.准备镜像文件,tomcat压缩包,jdk的压缩包!
2.编写dockerfile文件,官方命名:Dockerfile,build会自动寻找这个文件,就不需要-f指令
提交自己的镜像:
登录:https://hub.docker.com/
docker login -u h12345600
docker push 作者/镜像名
阿里云镜像:
1.找到容器镜像服务中心
2.创建命名空间
3.创建容器镜像
通过 --link 可以使容器间联通。
自定义网络:
自定义创建:
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
可以通过 docker network ls 查看所有网络模式
通过–net mynet 连接到我们自己的网络上面去
网络连通:
docker network connect 容器名 网卡
实战创建三主三从redis
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。