美文网首页
centos7 docker

centos7 docker

作者: maxmaxmaxma | 来源:发表于2017-11-30 09:50 被阅读0次

docker 安装

https://docs.docker.com/engine/installation/linux/docker-ce/centos/#uninstall-docker-ce
http://blog.csdn.net/wh211212/article/details/78662605

  • 卸载旧版本
$ sudo yum remove docker \
                  docker-common \
                  docker-selinux \
                  docker-engine
  • 设置Docker CE存储库
$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  • 更新yum包的索引
$ sudo yum makecache fast
  • 列出docker可用的版本
$ yum list docker-ce --showduplicates | sort -r
  • 安装指定版本
//$ sudo yum install <FULLY-QUALIFIED-PACKAGE-NAME>
$ sudo yum install docker-ce-17.09.0.ce

| Note: The version string is the package name plus the version up to the first hyphen. In the example above, the fully qualified package name is docker-ce-17.06.1.ce

  • 启动Docker
$ sudo systemctl start docker
  • 验证docker
$ sudo docker run hello-world
  • 查看docker版本
docker version
  • 卸载Docker CE
sudo yum remove docker-ce
sudo rm -rf /var/lib/docker

配置镜像加速器

进入阿里云docker库首页https://dev.aliyun.com/
进入管理中心-->镜像加速器, 按照操作文档配置加速器

docker 镜像命令

  • 搜索镜像
//$ docker search <镜像名称>
$ docker search java
  • 下载镜像
//$ docker pull <镜像名称>
$ docker pull java
  • 列出镜像
$ docker images
  • 删除镜像
//$ docker rmi <镜像名称>
$ docker rmi java
$ docker rmi  -f java //强制删除

docker 容器命令

  • 新建并启动容器
$ docker run
$ docker run java /bin/echo 'Hello world'
$ docker run -d -p 91:80 nginx
// -d 后台运行
// -p 宿主机端口:容器端口
  • 列出容器
$ docker ps
  • 停止容器
$ docker stop <container id>
  • 强制停止容器
$ docker kill <container id>
  • 启动停止的容器
$ docker start <container id>
  • 重启容器
$ docker restart <container id>
  • 删除容器
$ docker rm <container id>
  • 删除所有容器
$ docker rm -f $(docker ps -a -q)
  • 进入容器
//方法一
$ docker attach <container id>
注:可通过 Ctrl+p 然后 Ctrl+q 组合键退出 attach 终端。

方法二
$ docker exec
$ docker exec -it <container> bash|sh
$ docker exec -it b06fae9dcf21 /bin/bash
// 执行 exit 退出容器

Dockerfile 命令

  • Dockerfile由4个部分组成:基础镜像信息,维护者信息,镜像操作指令和容器启动指令,每一行都是一个指令。注释都是以“#”开始的.
# Version 0.1

# 基础镜像
FROM java:8

# 维护者信息
MAINTAINER zhangyongli

# 镜像操作命令
RUN apt-get -yqq update && apt-get install -yqq apache2 && apt-get clean

# 容器启动命令
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]

  • FROM指令
    指定即将制作的镜像,继承哪位镜像。
FROM <image> 或 FROM <image>:<tag>
  • MAINTAINER指令
    指定维护者信息
MAINTAINER <name>
  • RUN指令
    执行shell命令的,当解析Dockerfile时,遇到RUN指令,将自动翻译为/bin/sh -c “xxxx”
RUN <command>
  • CMD指令
    指启动容器时执行的命令,每个Dockerfile只能有一条CMD指令,如果指定了多条CMD,只有最后一条会被执行。
CMD command param1 param2
CMD [“executable”,”param1”,”param2”]
CMD [“param1”,”param2”]
  • ENV指令
    指定一个环境变量,会被后续的RUN指令使用,并在容器运行时保持。
ENV <key> <value>
  • ADD指令
    复制指定<src>到容器中的<dest>中,可以是Dockerfile所在目录的一个相对路径,也可以是一个URL,还可以是一个tar文件(自动解压为目录)
ADD <src> <dest>
  • COPY指令
    复制本地主机<src>到容器中的<dest>中,当使用本地目录为源目录时,推荐使用
COPY <src> <dest>

构建镜像

进入Dockerfile目录,执行

docker build -t 镜像名称:tag标识 .

启动镜像

docker run -d -p 80:80 --name 别名 镜像名称:tag标识

推送镜像

http://blog.51cto.com/wzlinux/2045716

推送镜像(Registry2)

  • 安装私有仓库
docker run -d -p 5000:5000 --restart=always --name registry2 registry:2
  • 设置Insecure registries


    image.png
  • 重新打标签

docker tag <container> [registry-host]:[port]/[username]/name:tag
  • 推送镜像
docker push [registry-host]:[port]/[username]/name:tag
  • 拉取镜像
docker pull [registry-host]:[port]/[username]/name:tag
  • 查看私有仓库的镜像
http://[registry-host]:[port]/v2/_catalog
http://[registry-host]:[port]/v2/[container]/tags/list
 http://192.168.0.153:5000/v2/_catalog
 http://192.168.0.153:5000/v2/mxrcorp/mxr-eureka-server/tags/list

end

相关文章

网友评论

      本文标题:centos7 docker

      本文链接:https://www.haomeiwen.com/subject/kpgmbxtx.html