Docker 小试

589 阅读4分钟

一、Docker基本命令

构建镜像:docker build -t <镜像> .
查看镜像:docker images / docker image ls
删除镜像: docker rmi <镜像ID>
创建容器:docker run -itd -p <映射端口> --link <容器连接> <镜像> bash

docker run -itd -p 8080:8080 --link 9fjkn4544vf:localhost test-app bash

查看容器: docker ps (运行中) docker ps -a(全部)
停止容器: docker stop <容器ID>
启动容器:docker start <容器ID>
重启容器:docker restart <容器ID>
删除容器:docker rm <容器ID>
拉取镜像: docker pull <镜像>
tag镜像: docker tag <镜像> <镜像:tag>

docker tag ubuntu:18.04 username/ubuntu:18.04

仓库登录 docker login <仓库地址>
仓库登出 docker logout
推送镜像 docker push <镜像>

二、Dockerfile

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明

这里贴一下菜鸟教程上的Dockerfile,就不写了,我贴一下我使用的Dockerfile
FROM java:8
EXPOSE 8080

#定义时区参数
ENV TZ=Asia/Shanghai
#设置时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone

VOLUME /tmp
ADD ./zs_api_jar/* app/
RUN bash -c 'touch app/'
ENTRYPOINT ["java","-jar","app/zs-api.jar"]

三、Docker私有仓库搭建

Docker官方提供了一个公共仓库-hub.docker.com,你可以在上面注册账号,然后使用docker login 进行登录,进本地构建好的镜像push到公共仓库中,像一般的开源项目都可以在上面找到镜像,直接pull下来使用,不用像以前传统方式一样安装,如nginx、redis等常用软件。


但在公司实际的开发中,不可能将项目镜像push到公共仓库中去,所以企业一般是搭建自己的私有Docker仓库,以满足使用。
Docker官方将docker仓库项目开源了,你可以使用它进行搭建。还有一个开源项目更好用——harbor,它除了集成docker仓库以外,还提供了镜像管理系统,搭建后可以对用户设置不同权限,更好的进行线上版本管理。

搭建

1.前置条件
  • 安装docker并运行
yum install docker   # 安装docker
...
systemctl start docker   # 运行docker服务
  • 安装docker-compose yum install docker-compose
2.下载安装包

如果访问github速度还可以,建议直接 wget https://github.com/goharbor/harbor/releases/download/v1.9.4/harbor-offline-installer-v1.9.4.tgz

如果访问速度不行,可以找国内源进行下载harbor.orientsoft.cn/,不过版本没有最新的

解压安装包:tar -zxvf harbor-offline-installer-v1.7.1.tgz

3.编辑配置器文件

在项目目录下,有一个harbor.cfg的文件,就是配置文件

里面需要改的有hostname, 改成服务器域名或公网IP, 如果没有https相关配置,还需要改customize_crt=false,支持http访问。
注:如果是http访问,需要对于docker编辑/etc/docker/daemon.json
{
    "insecure-registries":["hub.docker.*.com:3333"]
}
然后重启Docker
4.启动harbor

修改完配置文件后,运行 ./prepare 运行 ./install.sh

启动后,可以在浏览器中访问host,可以看到harbor管理页面,则说明启动成功。同时在docker ps中也可以看到右多个关于harbor的容器正在运行。

然后可以通过docker login 命令 去登录自己的账户,如果登录成功则说明没问题。
5.管理命令
启动:docker-compose up -p 或者 docker-compose start
停止:docker-compose down -d 或者 docker-compose stop

使用

登录私有仓库:docker login
拉取镜像:docker pull <镜像>
tag镜像:docker tag <镜像> <镜像:tag>
push镜像:docker push <镜像>

还可以通过GUI管理后台,对用户、仓库、项目等进行管理。


值得注意的是,建议大家在进行docker仓库搭建的时候,使用一台新服务器进行搭建,尽量不要在有多个项目在跑的服务器上搭建,因为如果harbor使用的不是80端口,还需要通过nginx做转发,会导致管理页面路径出现错误;再者镜像在push的时候占用带宽是比较大的,建议搞一个服务器专做私有仓库,还有镜像多了本身也很占服务器存储空间。