docker

Posted cowshed

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker相关的知识,希望对你有一定的参考价值。

linux CentOS6.8 安装命令

1、yum install -y epel-release

2、yum install -y docker-io

(无效的话,直接下载源安装:yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm)

3、配置文件位置 /etc/sysconfig/docker (centOS7以后配置文件在/etc/docker/daemon.json)

4、启动Docker后台服务命令:service docker start /restart

5、docker version验证

 

linux CentOS7安装命令

官网安装文档

https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce

 

阿里云镜像加速

在阿里云搜索 镜像加速器 

技术图片

 

docker配置文件修改 other_args="--registry-mirror=https://3kd4gi0e.mirror.aliyuncs.com"

重启docker

ps -ef|grep docker 验证是否成功

 

测试例子

docker run hello-world

run命令逻辑

技术图片

 

  命令:

列出本地主机上的镜像
docker images [-a,本地所有镜像(含中间镜像),-q只显示镜像id,-digests:镜像摘要信息  ,--no-trunc显示全部信息]
docker image 镜像名称 显示指定镜像信息

运行镜像
docker run hello-world:lastest (镜像名称:版本号[可省略])

查找镜像,是从gitHub上查。https://hub.docker.com
docker seacher 镜像名称
docker seacher -s 30 镜像名称  (查点赞数超过30以上的镜像)

拉镜像
docker pull 镜像名称

删除镜像
docker rmi 镜像名称   停止时
docker rmi -f 镜像名称   强制删除
docker rmi -f 镜像名称1 镜像名称2 删除多个
docker rmi -f ${docker images -qa} 删除全部镜像
docker run -it --name=‘镜像名称‘ 镜像id或名称   -P 随机端口映射  -p 指定端口映射 交互模式启动并启动伪终端(),并重命名镜像名字

docker run -it -p 8888:8080 tomcat
docker run -it -P tomcat

进入容器
docker attach 容器id 

docker run -d 镜像名称 后台运行,没有窗口(守护式容器)
docker exec -it 容器id /bin/bash

docker ps 展示当前运行的容器
docker ps -l 展示上一个运行的容器
docker ps -n 3 展示上三个运行的容器
docker ps -a 展示当前运行与过往的容器
docker ps -q 只显示容器编号

exit退出
ctrl+p+q 暂时退出。返回上一层宿主机

docker start/restart/stop/kill 镜像id或名称 启动容器

docker rm 容器id或名称 删除已经停止的容器
docker rm -f 容器id或名称 强制删除容器
docker rm -f $(docker ps -a -q) 删除全部
docker ps -a -q | xargs docker rm 删除全部
docker logs -f -t --tail 查看容器日志

生成新的镜像到公有云(阿里云-容器镜像服务-镜像列表)
docker commit -m="描述" -a="作者" 容器ID  目标镜像名:tag

docker容器数据卷 保存数据
容器之间共享或重用数据
卷中更改直接生效
更改不会包含在镜像的更新中

从容器内拷贝文件到主机
docker cp 容器id:容器内路径 目的主机路径

容器内添加数据卷
docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名    #自带权限
:ro 只读

展示json形式的容器描述
docker inspect 容器id

mysql
-e MYSQL_ROOT_PASSWORD = 123456  启动mysql时,密码

dockerFile 是对镜像的描述文件
指令:
FROM:基础镜像
MAINTAINER 镜像维护者信息
RUN 容器构建时需要运行的命令
EXPOSE 对外暴露的端口
WORKDIR 进容器后的目录,工作目录
ENV构建镜像环境中,设置环境变量
ADD 拷贝加解压缩tar
COPY拷贝 主机路径/容器路径
VOLUME 容器数据卷
CMD 容器启动时要运行的命令,可以有多个命令,但只有最后一个生效。会被docker run之后的参数替换
ENTRYPOINT 容器启动时要运行的命令
ONBUILD 在构建一个被继承的父镜像时运行命令。被继承后父镜像的onBuild触发

提交下拉操作在阿里云仓库里有


部署微服务
jar包上传服务器,同目录创建Dockerfile文件
内容:
From java:8 #基于哪个镜像
VOLUME /tmp #将本地文件夹挂载到当前容器
ADD XX.jar /app.jar #复制文件到容器,重命名
EXPOSE 8761 #暴露的端口
ENTRYPOINT ["java","-jar","/app.jar"] #容器启动后执行的命令

docker build -t XX:[tag] . #构建镜像,注意最后有点(docker当前目录)

 

技术图片

 

以上是关于docker的主要内容,如果未能解决你的问题,请参考以下文章

markdown docker-compose片段

sh Docker片段

《Docker 源码分析》全球首发啦!

docker 部署 coredns(内部域名解析)

docker 部署 coredns(内部域名解析)

将 Docker 容器限制为单个 cpu 核心