登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 571|回复: 0

Docker底子教程

[复制链接]

151

主题

151

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2019-2-13 06:36:42 | 显示全部楼层 |阅读模式 来自 江苏徐州
U8YJAQejJ8lcCmZF.jpg




  • 安装Docker
  • 管理Docker假造机
  • DaoCloud镜像加快器
  • 镜像
  • 容器
  • 镜像发布


一,安装Docker
安装docker
情况:centos7.x
起首更新yum   sudo yum -y update
然后实行安装下令 sudo yum install -y docker
Docker 默认的位置: /var/lib/docker
二、管理Docker假造机
 (1)管理Docker假造机下令
启动Docker
sudo systemctl start docker
  重启Docker
 sudo systemctl restart docker
  关闭Docker
sudo systemctl stop docker
(2)一图读懂Docker下令
gDF29pSsFpYsZE7x.jpg

(3)给当前用户赋予实行docker下令权限
 # 创建docker用户组
1.sudo  groupadd docker
 # 将当前用户添加到docker组中
     2. sudo gpasswd -a ${user} docker
  # 重启docker历程
    3.sudo systemctl restart docker
    4.重新登录shell
三、DaoCloud镜像加快器
1.DaoCloud官网地点
http://www.daocloud.io/mirror
2.设置DaoCloud
2.1 shell下实行下令:
curl -sSL http://get.daocloud.io/daotools/set_mirror.sh | sh -shttp://f1361db2.m.daocloud.io
2.2 实行完上述下令后,多了个逗号,打开/etc/docker/daemon.json文件,去掉“,”;
Pk9nSxV9u9SZpi99.jpg

2.3重启docker
sudo systemctl restart docker
四、镜像
1.在线安装镜像
  从dockerhub上搜刮镜像并在线安装。
  dockerhub地点: http://hub.docker.com/  
在线 安装镜像,不必要注册
推送本身的镜像到dockerhub,必要注册用户
案例:在线安装java镜像
 step1: 搜刮java镜像
  docker search java
xP2btr2TinMqQTab.jpg

step2:从dockerhub拉去并安装java镜像
  docker pull docker.io/java
2,镜像相干底子下令
(1)检察全部安装的镜像
    docker images
  (2)修改docker镜像名称
docker  tag oldname newname
docker tag docker.io/java java
   (3)备份镜像
    镜像导出
    docker save  java> /home/java.tar.gz
    镜像导入
    docker load < /home/java.tar.gz
(4)删除镜像
      docker rmi 镜像名称或镜像id
  (5)检察镜像依靠
docker history imageid
3,编写Dockerfile
3.1,实行hellowold-dockerfile
 3.2,Dockerfile语法梳理及最佳实践
FROM
选取base image
FROM scratch
scratch表现不依靠任何image,重新制作.
LABEL
镜像作者信息
LABEL maintainer="[email protected]"
LABEL version="1.0"
LABEL description="this is description"
RUN
实行下令并创建新的Image Layer
Z8ntSU8nT8LA7mNo.jpg

WORKDIR
设定当前工作目次,雷同于 cd下令
WORKDIR /root 假如没有会主动创建root
WORKDIR demo  
RUN pwd 输出效果/root/demo  
ADD and COPY
将当地文件添加到docker image中
ADD
ADD hello /   将hello文件添加到根目次
ADD test.tar.gz /  添加到根目次并解压
WORKDIR /root   ADD hello test/  添加到/root/test中
COPY
WORKDIR /root COPY hello test/
ADD与COPY区别
ADD除了COPY还可以对tar.gz解压缩
ENV
存储和网络
VOLUME
EXPOSE
Shell和Exec
shell:将要运行的下令作为shell脚本实行
i93At27tT9jJZvc3.jpg

ENTRYPOINT

  • 设置容器启动时运行的下令
  • 让容器以应用步伐大概服务的情势运行
  • 不会被忽略,肯定会实行
3.3Dockerfile学习资料
Dockerfile在github上的代码库
http://github.com/docker-library/
Dockerfile reference
http://docs.docker.com/v17.09/engine/reference/builder/
五、容器
1.容器底子下令
启动容器: docker run
docker run -it --name myjava java bash
docker run -it --name myjava -p 9000:8080 -p 9001:8888 java bash
docker run -it --name myjava -v /home/project:/soft --privileged  java bash
-it:代表交互式运行,进入docker情况
--name代表容器名称
-p 9000:8000 将宿主机9000端口映射到docker容器的800端口
-v 将宿主机/home/project映射到容器的/soft目次
--privileged 代表docker拥有操纵宿主机文件的最高权限
检察正在运行的容器
docker container ls -a 
docker ps -a
案例:启动docker容器,并在容器中创建文件,将文件映射到宿主机中。
sudo docker run -it  -p 9000:8080 -v /usr/gy/docker:/soft --privileged --name myjava docker.io/java bash
cd /soft
touch hello.txt
echo "hello">hello.txt
效果: 宿主机的/usr/gy/docker中有文件hello.txt
退出容器 exit
停息容器 docker pause myjava
规复容器运行 docker unpause myjava
制止容器 docker stop myjava
重新启动容器  docker start -i myjava
删除容器
可以利用"docker rm 容器id"来删除一个停止状态的容器;若要删除一个运行       中的容器,必要加-f参数
sudo docker rm -f 8023be72d98f
删除全部容器
docker rm $(docker container ls -al)
删除全部退出的容器
docker rm $(docker container ls -f "status=exited" -q)
2.基于容器创建新的镜像
方法一docker container  commit containerName newImageName
简写:docker commit containerName newImageName
案例:基于centos容器创建新的镜像
step1:启动centos容器 docker run -it centos
step2: 改变容器的内容
 安装vim yum install -y vim
step3:将改变后的容器,重新编译成image
a4E6Eut6jgtePEUA.jpg

step4: docker commit jovial_mcnulty gy/centos-vim
HF1p27Z8O4oN928O.jpg

方法二、Dockerfile
案例:基于centos容器创建新的镜像
在宿主机上实行以下下令:
1,创建并进入目次 /usr/gy/docker/docker-centos-vim 
2,创建并编写Dockfile文件
vi Dockerfile
#基于docker.io/centos镜像构建
FROM docker.io/centos 
#运行安装vim下令
RUN yum install -y vim
3,运行下令
docker build -t  gy/centos-vim-new .
-t:代表天生的镜像名称
. 点表现 Dockerfile 文件地点的路径,上例是当前路径,以是是一个点
题目:镜像是只读的为什么能安装vim?
答案:镜像在运行过程中会天生一个暂时容器,将vim安装到暂时容器中,末了将暂时容器转成新的镜像同时暂时容器被删除
六、镜像发布
  • 镜像上传到dockerhub
    留意点:镜像名字: dockerhub-用户名/镜像名称,否则出现无权限提示
    mRihmcd99rzRBW80.jpg

    step1:docker login
    登录dockerhub
    step2: docker push imagename
    step3: 验证:
    方法一:登录dockerhub网站,找到提交的镜像
    方法二:删除当地的镜像,重新拉去dockerhub上新提交的镜像
  • dockerfile
    dockerhub与github关联,dockerhub主动克隆gihhub上的堆栈并主动构建镜像
  • 搭建私有dockerhub
    registry:  http://hub.docker.com/_/registry
    LwOZSUR1ucwnAfKV.jpg

    step1:找一台服务器启动registry
    docker run -d -p 5000:5000 --restart always --name registry registry:2
    step2:当地打包镜像  docker build -t ip:5000/imagename[:tag]
    留意: 必须是registry地点服务器的ip:5000/imagename:tag
    step3:编辑/etc/docker/daemon.json
    添加内容: {"insecure-registries":["registry-ip:5000"]}
    step4:编辑 /lib/systemd/system/docker.service
    添加内容:
    qA2qmzMSS1va1A1v.jpg

    step5:重启docker
    sudo systemctl restart docker
    step6: docker push rgistry-ip:5000/imagename
    验证:
    http://docs.docker.com/registry/spec/api/




  • 上一篇:怎么在一台电脑上安装win7与centos7双体系
    下一篇:Centos7.564位安装教程
    您需要登录后才可以回帖 登录 | 加入社区

    本版积分规则

     

    QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

    GMT+8, 2024-5-7 15:44 , Processed in 0.138725 second(s), 47 queries .

    HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表