三、Docker 镜像与容器常用命令

一、docker概念
  1、docker是一个容器引擎(创建容器),虚拟化技术的一种
  2、虚拟化技术:虚拟机、K8S(硬盘、内存、服务)
  3、容器(小型的linux系统)
  4、举例
     手机 ===> docker
     app ===> 容器
            软件安装包 ===> 镜像
  5、安装docker
   1、linux上安装(阿里云服务器、虚拟机)
   2、镜像仓库:官方镜像、开发者
   3、连接Linux: ssh root@192.168.1.xx
   4、安装docker的机子叫宿主机
   5、在宿主机上运行的镜像就叫容器
   6、docker 启动与停止
    systemctl start docker 启动docker
    systemctl stop docker 停止docker
    systemctl restart docker 重启docker
    systemctl enable docker 设置开机启动
    systemctl status docker 查看docker的状态

二、查找需要的镜像

  1. https://hub.docker.com 搜索并选择需要的镜像分类

  

  2. 选择镜像分类后,点击Tigs;右侧可复制获取具体镜像分类的命令

  

 三、镜像命令

  1. 拉取镜像(前提:启动docker服务):

  docker pull python:3.8.16-slim-bullseye

  

  python: 镜像名称

  3.8.16-slim-bullseye:版本号,标记。如果不写标记,默认拉取最新版本的镜像

  2. 查看镜像:

  docker images

  

  3. 删除镜像:

  docker rmi 镜像名称:标记 

  4. 查看镜像的所有信息:

  docker image inspect  python:3.8.16-slim-bullseye

四、容器命令

  1. 查看容器(所有的容器):

   docker ps - a

  2. 查看容器(正在运行的容器):

   docker ps

  

  3. 以守护模式创建容器并启动:

   docker run -di --name 容器别名 镜像名称:标记

   docker run -di --name wade_python python:3.8.16-slim-bullseye

    -d: 创建容器并放入后台

    -i: 运行容器

  

  4. 登录容器:

   docker exec -it 容器别名 登录后执行的命令

   docker exec -it wade_python /bin/sh

    -t: 运行容器后进入容器

  5. 退出已进入的容器(守护模式下退出容器,容器仍正常运行):

   exit 或者 exit() 或者 Ctrl + D

  6. 停止容器:

   docker stop wade_python

   docker kill wade_python  #强制停止

  7. 启动容器:

   docker start wade_python

   docker restart wade_python

  8. 删除容器:

   docker rm wade_python  #正在运行的容器无法被删除

   docker rm -f wade_python  #强制删除正在运行的容器

  9. 拷贝文件进docker

   docker cp 拷贝文件路径 容器别名:目标目录  #从本地拷贝至docker

   docker cp test.py wade_python:/tmp

   docker cp 容器别名:目标目录 拷贝文件路径  #从docker拷贝至本地

  10. 启动jenkins容器

   docker run -dit --name=wade_jenkins -p 8090:8080 -u=root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:alpine

    -i:表示运行容器
    -t:表示容器启动后会进入其命令行
    -d:守护式方式创建容器在后台运行
    --name:容器名称
    -p 8090:8080:端口映射,宿主机端口:jenkins容器端口
    -u=root:指定容器用户为root用户
    -v /var/run/docker.sock:/var/run/docker.sock:将docker.sock映射到jenkins容器中
    docker.sock文件是docker client与docker daemon通讯的文件
    -v /usr/bin/docker:/usr/bin/docker:将宿主机docker客户端映射到jenkins容器中

    注意此处有坑:当遇到jenkins无法加载插件,查看容器日志报错:SEVERE: ERROR: Signature verification failed in update site 时,可参考:https://blog.csdn.net/weixin_43537484/article/details/120370719

              若仍无法解决问题请更换jenkins镜像,使用该jenkins/jenkins:alpine 镜像不会遇到此问题!!

  11. 查看docker日志

   docker logs wade_jenkins  #首次启动Jenkins时可通过docker logs 查看jenkins初始密码。

五、利用Dockerfile 创建自己镜像

  1、将项目依赖包导出来到requirements.txt文件中,txt文件名称可以随意写

            pip freeze > requirements.txt

            在宿主机(安装docker的机子)上新建一个目录(我的目录在/app),将requirements.txt文件复制进去

            在app目录下创建Dockerfile文件(文件名必须是Dockerfile,没有后缀)

        2、Dockerfile内容以及解释如下

FROM python:3-alpine  #基于python:3-alpine这个基础镜像镜像构建镜像
WORKDIR /app   #切换工作空间目录
ADD ./requirements.txt /app #将python项目依赖包文件添加到镜像
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple #安装依赖包
CMD ["python3", "main.py"] #设置容器执行后自动执行的命令,这里main.py是我们自动化框架的执行入口文件

  3、在app目录下执行镜像构建命令
    docker build -t python3.9:haili .
    -t:镜像名称
    点(.):点表示Dockerfile文件所在的目录,我现在在app目录下,点表示当前目录

 

posted @ 2022-12-12 23:01  Chaman囍  阅读(343)  评论(0)    收藏  举报