运维开发网

docker是什么,怎么使用

运维开发网 https://www.qedev.com 2020-07-15 10:14 出处:网络 作者:运维开发网整理
介绍 三个部件 镜像(Image) 容器(Container) 仓库(Repository) docker pull redis docker run -d name redis redis docker start/stop/pause redis   1 2 3 容器镜像的运行关系 安装 centos7安装 yum install docker 卸载 yum list installe

介绍

三个部件

镜像(Image)

容器(Container)

仓库(Repository)

docker是什么,怎么使用

docker pull redis
docker run -d name redis redis
docker start/stop/pause redis
 
  • 1
  • 2
  • 3

容器镜像的运行关系

docker是什么,怎么使用

安装

centos7安装

yum install docker
卸载
yum list installed | grep docker
yum remove -y(-y不询问)
 
  • 1
  • 2
  • 3
  • 4

启动

service docker start
sudo chkconfig docker on(开机启动)
 
  • 1
  • 2

测试

docker version
docker run hello-world
docker search hello-world
 
  • 1
  • 2
  • 3

docker常规用法

docker操作

版本/信息

docker [info|version]
 
  • 1

容器操作

容器生命周期管理

docker [run | start | stop | restart | kill | rm | pause | unpause]
 
  • 1

run -dti

d 后台运行

it 交互shell进程

保持一个前端进程,容器就不会退出

容器操作运维

docker [ps | inspect | exec | logs | history | save | import ]
 
  • 1

inspect 查看上下文信息

容器root fs命令

docker [commit | cp | diff]
 
  • 1

镜像管理

docker [images | rmi | tag | build | history | save | import]
 
  • 1

rmi 删除镜像

仓库操作

docker [log | pull | push | search]
 
  • 1

配置镜像

vi /etc/docker/daemon.json
 
  • 1
{
	"registry-mirrors":["https://registry.docker-cn.com"]
}
 
  • 1
  • 2
  • 3

退出容器并关闭

exit
 
  • 1

退出容器并不关闭

ctrl + p + q
 
  • 1

手动运行tomcat

docker pull tomcat
# 指定版本号可以这样写
docker pull tomcat:版本号
# 还可以指定仓库名,不指定默认为官方仓库
docker pull erlieStar/hello
# 指定ip和port,不指定默认为官方仓库
docker pull ip:port/erlieStar/hello

docker run -d --name tomcat 9090:9090 tomcat(启动失败,删除原来的,docker rm tomcat)
docker ps
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

端口格式为:宿主端口:docker端口

启动报错

/usr/bin/docker-current: Error response from daemon: oci runtime error: container_Linux.go:235: starting container process caused "process_Linux.go:258: aor unknown property.\"".
 
  • 1

执行

yum update
 
  • 1

查看详情

docker inspect tomcat
 
  • 1

仓库使用

docker tag hello-word erlieStar/hello:2.0
docker login
docker push erlieStar/hello:2.0
 
  • 1
  • 2
  • 3

docker tag 标记本地镜像,将其归入某一仓库

login 登陆仓库

docker push 推送镜像到仓库(需要登陆)

search 在仓库中查询镜像-无法查询到tag版本

pull 下载镜像到本地

搭建私有仓库

docker run -d --name reg -p 5000:5000 registry
 
  • 1

查看私有镜像

curl http:ip:port/v2/_catalog
 
  • 1

发布到私有仓库

docker push ip:port/hello
 
  • 1

数据管理

docker是什么,怎么使用

docker run --name ce -v /opt/data -it cenos /bin/bash

需要改变宿主机目录时

docker run --name ce2 -v /opt/data:data -it cenos /bin/bash

/opt/data 为宿主机目录

docker的数据卷默认位置:/var/lib/docker/volumes

共享容器ce的共享文件

docker run -it --name ce3 --volumes-from ce centos
相同目录下有相同的数据文件
 
  • 1
  • 2

ce容器生成订单数据 opt/data

ce3容器需要来处理订单数据 volumes-from

删除容器也不会宿主数据

镜像的制造

docker commit n1 cent-ng:v1

docker run -it --name ngx1 cent-ng:v1 /bin/bash

启动容器的时候,直接启动nginx (要以前台的方式启动,daemon off守护关闭)

docker run -d --name ngx3 cent-ng:v1 /usr/sbin/nginx -g “daemon off;”

假如docker run时指定/usr/sbin/nginx nginx进程是以后台进程启动的

基础镜像,维护者信息,操作指令,容器CMD

dockerfile的指令分为两种:构建指令和设置指令

构建指令:用于构建镜像的时候执行的,不会在该镜像上的容器里执行

设置指令:用于设image的属性,将会在运行的容器里执行

Dockerfile使用

Dockerfile指令集

命令 解释
FROM 第一条指令必须为FROM指令,用于指定基础镜像
MAINTAINER 指定维护者信息
RUN 会在shell终端运行命令
EXPOSE 格式为EXPOSE[…] 声明容器需要暴露的端口号,镜像启动可以通过-P或-p进行端口映射的绑定
ENV 指定一个环境变量,可以被后续的RUN引用,并且在容器中记录该环境变量
ADD 该命令将复制指定的文件到容器中,其中可以是Dockerfile所在目录的一个相对路径,也可以是tar文件(自动解压)
VOLUME 格式为VOLUME [path],可以创建一个可以从本地主机或其他容器挂载点,一般用来存放需要保持的数据
USER 指定运行容器时的用户名,后续的RUN也会指定该用户
WORKDIR 指定工作空间,后续命令都在此目录下执行
CMD  
ENTRYPOINT  
FROM openjdk:8
将test-1.0.jar重命名为web.jar
ADD ["test-1.0.jar", "web.jar"]
EXPOSE 8090
ENTRYPOINT ["java","-jar","/web.jar"]
 
  • 1
  • 2
  • 3
  • 4
  • 5
docker build -t member:test
0

精彩评论

暂无评论...
验证码 换一张
取 消