docker使用总结

前言

    在平时的工作中,部署软件服务或者多人用一台GPU服务器开发算法模型,为了互不影响,而且便于环境迁移,用docker是很好的选择。这里简单总结下,分享给大家。

环境准备

1、在开发服务器上安装docker,具体安装步骤略。可求助AI工具。

2、(非必须)为了便于管理docker镜像,通常要建一个私有的镜像仓库。

推荐使用Harbor。Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。在可视化的界面上进行镜像管理。搭建过程略,可求助AI工具。常用到的命令如下:

 登录(如果镜像仓库服务器有用户权限设置):

docker tag {旧镜像名称:旧tag名} {新镜像名称:新tag名}

  从镜像仓库拉取镜像:

docker pull {镜像仓库中的镜像名:tag}

   推送镜像到镜像仓库:

docker push {本地环境中的镜像名:tag}

常用docker命令

  1、创建容器

docker run -p 80:8080 --restart=always --name=my_app --privileged -v /data/test:/data/test -it {镜像名称:tag名} bash

     参数说明:

     --privileged 用于提供更多的特权给容器内的进程;

     --restart    退出容器或者服务器重启后容器会自启动;

     --name    给容器命名,便于区分;

       -p           主机和容器内端口映射;

       -it           容器创建好后,会分配一个虚拟终端,可进行交互操作;

   2、 进入容器

docker exec -it {容器名称或容器id} bash

   3、生成镜像

   方法一:将现有容器制作成一个镜像

docker commit {容器名} {新的镜像名:新的tag名}

    方法二:通过Dockerfile生成镜像

                  注意最后的‘.’不要忘记

docker build -t {新的镜像名:新的tag名} .

   关于Dockerfile的写法此处略。

docker-compose常用命令

  • 创建容器:docker-compose up -d --build {imageName}

  • 查看容器:docker-compose ps

  • 停止容器:docker-compose top {serviceName}

  • 启动容器:docker-compose start {service Name}

  • 删除容器:docker-compose rm {serviceName}

 关于docker-compose.yml的写法可自行搜索。比如前端工程nginx:

version: '3'
services:
  nginx:
    image: nginx:v2.2
    container_name: nginx
    volumes:
      - /docker-compose/nginx/nginx.conf:/etc/nginx/nginx.conf
      - /docker-compose/nginx/conf.d:/etc/nginx/conf.d
      - /etc/localtime:/etc/localtime
    ports:
      - 8081:8080
    restart: always

 其它命令

  • 删除退出的容器:docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
  • 删除none镜像:docker rmi $(docker images | grep "none" | awk '{print $3}')
  • 删除没有标签(none)的镜像:docker image prune
  • 删除none和没有被任何容器引用的镜像:docker image prune --all

你可能感兴趣的:(运维部署,docker,容器,运维)