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

Docker备忘录

原创
作者头像
yuann
修改2021-04-12 16:21:51
6840
修改2021-04-12 16:21:51
举报
文章被收录于专栏:one roadone road

一、Docker的命令

行为

命令

例子

查询镜像

docker searh <image>

docker searh ubuntu

拉取镜像

docker pull <image>

docker searh ubuntu

通过Dockerfile创建image

docker build -t xxx .

docker build -t bigdata-ubuntu .

查看有哪些镜像

docker images

docker images

查看有哪些运行的容器

docker ps (类似linux)

docker ps

查看共有哪些容器

docker ps -a

docker ps -a

开启镜像(创建容器并运行)

docker run xx(如果没有镜像,那么会自动下载) docker run -d的-d代表后台运行

docker run -d -p 10022:22 --name salve1 bigdata-ubuntu

关闭容器

docker stop <containerId>(docker ps查看容器id)

docker stop 818ndyf

执行镜像的命令

docker exec -it <containerId> <命令>

docker exec -it 818ndyf /bin/bash

删除容器

docker rm <containerId>

docker rm 818ndyf

删除镜像

docker rmi <imageId>

docker rm tdyflzyr66

在host和docker之间拷贝文件

docker cp <filename>

docker cp 818ndyf:/opt/lampp/README-wsrep /opt/

登陆镜像仓库

docker login -u <yourRepositor>

docker login -u catofzpp,执行命令输入账密

上传镜像到私有仓库

docker push <imageName>

docker push catofzpp/jenkins

docker提交

docker commit <containerId> <imageName>

docker commit -a "作者:catofzpp" -m "文字说明" <容器id> <镜像名jenkins:latest>

二、Dockerfile的命令

行为

命令

指定基础镜像

FROM

执行命令(在容器里)

RUN

添加文件(可以添加远程的文件)

ADD

拷贝文件

COPY

执行命令(容器入口)

CMD

暴露端口(服务器监听的端口)

EXPOSE

指定路径

WORKDIR

维护者

MAINTAINER

设定环境变量

ENV

容器入口,容器启动时执行命令

ENTRYPOINT

指定用户

USER

指定挂在的卷

VOLUME

三、Dockerfle使用

1. 添加本地文件到docker

ADD可以将文件<src>拷贝到container的文件系统对应的路径<dest>,所有拷贝到container中的文件和文件夹权限为0755,uid和gid为0。如果文件是可识别的压缩格式,则docker会帮忙解压缩。

如果要ADD本地文件,则本地文件必须在 docker build <PATH>,指定的<PATH>目录下。

如果要ADD远程文件,则远程文件必须在 docker build <PATH>,指定的<PATH>目录下。比如:

代码语言:txt
复制
docker build github.com/creack/docker-firefox   

docker-firefox目录下必须有Dockerfile和要ADD的文件。

ADD只有在build镜像的时候运行一次,后面运行container的时候不会再重新加载了。

2. 进入目标容器

代码语言:txt
复制
docker exec -it <CONTAINER ID> /bin/bash

3. 设置container启动时执行的操作

(1)CMD:

设置指令,用于container启动时指定的操作。该操作可以是执行自定义脚本,也可以是执行系统命令。该指令只能在文件中存在一次,如果有多个,则只执行最后一条。

三种格式:

代码语言:txt
复制
CMD ["executable","param1","param2"] (like an exec, this is the preferred form)  

CMD command param1 param2 (as a shell) 

当Dockerfile指定了ENTRYPOINT,可使用:CMD ["param1","param2"] (as default parameters to ENTRYPOINT) 

(2)ENTRYPOINT:

设置指令,指定容器启动时执行的命令,可以多次设置,但是只有最后一个有效。

代码语言:txt
复制
ENTRYPOINT ["executable", "param1", "param2"] (like an exec, the preferred form)  

ENTRYPOINT command param1 param2 (as a shell) 

(3)区别

Container启动时执行的命令,但是一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条CMD。CMD主要用于container时启动指定的服务,当Docker run command的命令匹配到CMD command时,会替换CMD执行的命令。如下Dockerfile:

代码语言:txt
复制
CMD echo hello world

运行:

代码语言:txt
复制
fy@fy-pc:~/software/docker-image/centos-add-test$ docker run centos-cmd

hello world

一旦命令匹配:

代码语言:txt
复制
fy@fy-pc:~/software/docker-image/centos-add-test$ docker run centos-cmd echo hello fy

hello fy

4. 设置container容器的用户

USER:使用哪个用户跑container。

代码语言:txt
复制
# 指定memcached的运行用户  

ENTRYPOINT ["memcached"]  

USER daemon  
或  
ENTRYPOINT ["memcached", "-u", "daemon"]  

5. 切换目录

WORKDIR:切换目录用,可以多次切换(相当于cd命令),对RUN,CMD,ENTRYPOINT生效

6. 目录挂载

VOLUME:可以将本地文件夹或者其他container的文件夹挂载到container中。

四、通过Dockerfile定义自己的docker文件

代码语言:txt
复制
1. touch Dockerfile,名字就得是Dockerfile
2. vim Dockerfile 
输入内容:
FROM alpine:latest //alpine,相当于JAVAWEB里的BASE类
MAINTAINER fy //标识作者
CMD echo 'hello docker' //干啥
3. docker build -t xx .//-t是给他个标签, .代表实际给他的东西  
4. docker run -it -p 8989:8080 fy/jenkins

五、docker常见问题

  • docker的pull下来的容器或者镜像都是临时的,如果不提交,那么不能保存之前的修改。
  • 镜像相当于类,容器相当于类创建的对象。
  • docker --help可以在任何命令下执行,相当于docker exec --help查看exec的用法

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Docker的命令
  • 二、Dockerfile的命令
  • 三、Dockerfle使用
    • 1. 添加本地文件到docker
      • 2. 进入目标容器
        • 3. 设置container启动时执行的操作
          • (1)CMD:
          • (2)ENTRYPOINT:
          • (3)区别
        • 4. 设置container容器的用户
          • 5. 切换目录
            • 6. 目录挂载
            • 四、通过Dockerfile定义自己的docker文件
            • 五、docker常见问题
            相关产品与服务
            容器镜像服务
            容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档