前言

在公司使用配置流水线, 需要自定义自己的编译环境。 所以使用到了 docker 技术, 打成自己的镜像发布, 然后编译。 所以单独学习了下 docker 虚拟化容器技术, 并用来记录。 其中非常好的一个视频教程: 【狂神说Java】Docker最新超详细版教程通俗易懂, 推荐学习观看。

初步对 Docker 的认知一定要打成一致。 其中镜像为打包好的文件, 运行起来后称之为容器

Docker 常用的命令

注意: 更多的命令及参数可以参考官网文档或者网上资源博客

Docker 命令全览如下图:
Docker 命令全览

登录 Docker

  • 登录 Docker 服务
1
2
3
docker login -username=xxxx dockeservice

docker login -u xxx -p xxx

镜像相关

  • 查看本地镜像
1
2
3
# -a 所有的镜像
# -q 只展示镜像 id
docker images
  • 删除镜像
1
2
3
4
# 删除指定镜像
docker rmi imageId
# 删除所有镜像
docker rmi $(docker images -aq)
  • 运行镜像进入容器
    1
    docker run -it imageId /bin/bash

容器相关

  • 查看容器
1
2
3
# -a 所有的容器(运行中和停止)
# -q 只展示容器 id
docker ps
  • 启动容器
1
docker start id
  • 停止容器
1
docker stop id
  • 进入已经运行的容器
1
2
3
4
# 新的 bash
docker exec -it id /bin/bash
# 之前的 bash
docker attach id
  • 删除容器
1
2
3
4
# 删除指定容器
docker rm id
# 删除所有容器
docker rm $(docker ps -aq)

制作镜像

commit

使用 commit 命令可以提交在本次容器中的修改, 生成一个新的镜像。

1
docker commit -m '描述' -a '作者' 容器id 镜像名称:tag

dockerfile

编写 dockerfile 文件, 写明自己基于什么镜像, run 自己需要添加的新能力和配置, 最终生成新的镜像。 具体的 dockerfile 写法就不再介绍了, 可从其他网上去了解语法。

1
docker build -f dockerfile -t imagename:tag .

发布镜像

1
docker push imagename:tag

其他

端口映射

1
docker run -it -p 宿主机端口号:容器端口号 镜像id /bin/bash

数据卷

1
docker run -it -v 宿主地址:容器地址 镜像id /bin/bash