docker 进击之路3

1  去掉命令前的sudo

 

 

 如果添加成功 执行命令还是不能去掉sudo:

<1  重启docker

<2  退出ssh重新连接。

2   做一个自己的镜像文件

    2.1  mkdir hello-docker

           cd hello-docker/

           vi hello.c

文件内容如下

#include<stdio.h>

int main()
{
printf("hello docker\n");
}

 

yum install gcc

yum install glibc-static

gcc -static hello.c hello   #编译 hello.c 为 hello 

./hello   # 运行

 

docker build -t wenbing-fly/hello-docker .               # 打包为镜像

 

其中 -t 为指定镜像名    . 为在当前目录下查找

 

 

 3  docker container 常用命令

docker container ls  #正在运行的container进程。

docker container ls -a #运行过的container进程,已经退出。

docker run imagename:TAG#imagename:TAG 镜像名:版本号  只有一个则不需要,只填写镜像名称就可以。

docker run  -it   imagename    #交互式运行。

 #运行过的container进程,已经退出。如何删除?

docker container rm  id

 

 

 docker images 和 docker image ls 效果相同

docker image rm id # 移除镜像

docker rmi    id # 移除镜像

 docker ps -a   #已经运行过得容器

docker container ls -aq #  列举所有container的id

 

  docker  rm $(docker container ls -aq) #清除所有container

  docker container ls -f   "status=exited"   #所有运行过得container

  docker rm $(docker container ls -f   "status=exited"  -q)  #清除所有运行过得container

 

 4   docker container commit    #保存当前container为新的镜像

用法:

        docker  commit  imagename  new_imagename  #不安全

 

      docker image build

    docker pull centos 获取centos的镜像。   

5  通过Dockerfile 创建新的image

vi   Dockerfile

 

FROM  centos  

yun  yum install -y vim

 

docker build -t  centos-vim   .

 

FROM scratch     # %制作base image

FROM centos      #使用base image

FROM centos:7.0  

RUN    #每运行一条就分一层, 用&&符号连接  用 \ 反斜杠换行 来减少分层。

WORKDIR  /root    #类似 cd /root   如果没有回自动创建 /root 目录

AND  and COPY # 大部分情况,COPY优先于ADD! ADD除了COPY 还有额外的功能(解压)!

#添加远程文件或目录请使用curl 或wget

ENV #定义常量

ENV   AA  5.6    #设置常量

RUN  apt -get install -y mysql -server ="${aa}"  #引用常量

 

 

RUN  # 执行命令并创建新的Image Layer

CMD # 设置容器启动后默认执行的命令和参数

ENTRYPOINT # 设置容器启动时运行的命令。

 

posted @ 2022-02-09 22:35  老街巷口熟睡的猫  阅读(92)  评论(0编辑  收藏  举报