前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker基础

docker基础

作者头像
epoos
发布2022-06-06 16:35:13
4050
发布2022-06-06 16:35:13
举报
文章被收录于专栏:epoos.com

一、常用命令

代码语言:javascript
复制
docker -v # 查看版本号
docker info # 查看docker的信息
# Mac上在安装docker之后点击图标,手动启动docker命令
open /Applications/Docker.app # 还可以使用open命令打开docker应用
docker pull ubuntu # 使用 docker pull 命令来载入 ubuntu 镜像
docker run -it ubuntu /bin/bash # 使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器 -i: 交互式操作,-t: 终端。
docker run -d -p 8100:80 xxx/webapp # 指定端口,将docker的80端口映射到主机 8100 端口上

二、docker 镜像相关命令

代码语言:javascript
复制
docker images # 查看所有镜像,镜像类似于对象,容器类似于对象的实例,容器是由镜像实例化而来

# 同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,
# 如 ubuntu 仓库源里,有 15.10、14.04 等多个不同的版本
docker pull ubuntu:13.10 # 下载镜像
docker search httpd # 搜索镜像

# 创建镜像方法1:从已经创建的容器中更新镜像,并且提交这个镜像
apt-get update # 在容器内部更新
docker commit -m="has update" -a="runoob" 07a72718ed05 runoob/ubuntu:v2 # 提交更新 -m: 提交的描述信息 -a: 指定镜像作者
# 创建镜像方法2:使用 Dockerfile 指令来创建一个新的镜像(文件内容如下)
docker build -t epoos/nginx . # 根据当前目录下的 Dockerfile 创建镜像

# 删除本地一个或多个镜像(docker rmi [OPTIONS] IMAGE [IMAGE...])
docker rmi hello-world # 加-f参数强制删除

三、docker 容器相关命令

代码语言:javascript
复制
docker ps -a # 查看所有容器
docker ps # 查看所有运行中的容器
docker start CONTAINER_ID # 启动一个已停止的容器
docker restart CONTAINER_ID # 启动一个已停止的容器
docker container ls # 查看已经启动的容器列表
docker stop CONTAINER_ID # 停止已经启动的容器
docker attach CONTAINER_ID # 进入已经启动的容器
# docker exec # 推荐家使用,因为此命令会退出容器终端,但不会导致容器的停止
cat ./ubuntu.tar | docker import - test/ubuntu:v1 # 从容器快照文件中再导入为镜像
docker export CONTAINER_ID > ubuntu.tar # 将容器导出为指定文件
docker import http://example.com/exampleimage.tgz example/imagerepo # 可以通过指定 URL 或者某个目录来导入
docker rm -f CONTAINER_ID # 删除指定容器

docker pull epoos/webapp  # 载入一个web 应用镜像

docker run -d -p 8100:80 epoos/webapp # 指定端口,将docker的80端口映射到主机 8100 端口上
docker run -ti epoos/webapp /bin/bash # 进入容器的 bash 界面

docker port # 快捷查询端口
docker logs -f CONTAINER_ID # 可以查看容器内部的标准输出。

四、Dockerfile 介绍

Dockerfile 构建镜像所需的指令和说明

代码语言:javascript
复制
FROM # 构建镜像基于哪个镜像
MAINTAINER # 镜像维护者姓名或邮箱地址
RUN # 构建镜像时运行的指令
CMD # 运行容器时执行的shell环境
VOLUME # 指定容器挂载点到宿主机自动生成的目录或其他容器
USER # 为RUN、CMD、和 ENTRYPOINT 执行命令指定运行用户
WORKDIR # 为 RUN、CMD、ENTRYPOINT、COPY 和 ADD 设置工作目录,就是切换目录
HEALTHCHECH # 健康检查
ARG # 构建时指定的一些参数
EXPOSE # 声明容器的服务端口(仅仅是声明)
ENV # 设置容器环境变量
ADD # 拷贝文件或目录到容器中,如果是URL或压缩包便会自动下载或自动解压
COPY # 拷贝文件或目录到容器中,跟ADD类似,但不具备自动下载或解压的功能
ENTRYPOINT # 运行容器时执行的shell命令

五、使用 Dockerfile 构建应用

代码语言:javascript
复制
# 新建文件夹里面配置如下三个文件
# ls
./Dockerfile
./index.html
./nginx.conf
1.Dockerfile文件内容
代码语言:javascript
复制
FROM nginx
RUN mkdir /usr/share/nginx/dist && rm -rf /etc/nginx/nginx.conf
COPY ./nginx.conf /etc/nginx/nginx.conf
COPY ./index.html  /usr/share/nginx/dist/index.html
CMD ["nginx", "-g", "daemon off;"]
2.index.html文件内容
代码语言:javascript
复制
<html>
<head>
  <title>nginx docker server demo</title>
</head>
<body>
  nginx docker server demo
</body>
</html>
3.nginx.conf文件内容
代码语言:javascript
复制
# 拷贝一份nginx标准nginx.conf文件,修改80端口的server,如下所示
# ...省略
server
{
  listen 80;
  server_name localhost;
  location /
  {
    alias /usr/share/nginx/dist/;
  }
}
# ...省略
4.构建镜像
代码语言:javascript
复制
docker build -t epoos/nginx .
5.构建容器
代码语言:javascript
复制
docker run -d -p 8100:80 epoos/webapp # 指定端口,将docker的80端口映射到主机 8100 端口上
6.访问应用
代码语言:javascript
复制
http://localhost:8100

六、Docker登录与发布

当我们创建完自己的的docker镜像之后,就可以将其发布到网上供其它使用者直接使用了(和npm 包发布类似)。 首先得注册一个个人账号,地址:docker镜像地址

代码语言:javascript
复制
docker image tag [本地镜像名称]:[本地镜像tag名称] [username]/[repository]:[tag] # 为本地的docker标注名称和tag
docker image build -t [username]/[repository]:[tag] . # 也可以根据本地的 Dockerfile 配置文件重新创建镜像替换上面这一句

docker login # 登录
docker image push [username]/[repository]:[tag] # 发布

七、docker registry

docker registry是镜像源,下面有多个 docker镜像。 每个docker镜像可以有多个标签(版本)。

八、命令大全

docker命令能查看到 Docker 客户端的所有命令选项

代码语言:javascript
复制
docker # docker 能够查看所有的docker命令信息

相关链接

docker 学习网站

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、常用命令
  • 二、docker 镜像相关命令
  • 三、docker 容器相关命令
  • 四、Dockerfile 介绍
  • 五、使用 Dockerfile 构建应用
    • 1.Dockerfile文件内容
      • 2.index.html文件内容
        • 3.nginx.conf文件内容
          • 4.构建镜像
            • 5.构建容器
              • 6.访问应用
              • 六、Docker登录与发布
              • 七、docker registry
              • 八、命令大全
              • 相关链接
              相关产品与服务
              容器镜像服务
              容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档