docker常用操作和配置

docker相关安装见 http://www.ding51.cn/liunx-chang-jian-zhi-ling-nginx-docker-deng.html 本文主要介绍我日常开发中用到的命令和相关配置。

1、镜像
// 查看所有镜像
docker images 

// 删除镜像(前提是该镜像没在容器中运行,否则需要删除运行的容器)
docker rmi 镜像名:tag 或 id
2、容器
// 列出运行容器
docker ps

// 查看所有容器,包括关闭的
docker ps -a

// 进入docker容器
sudo docker exec -it 665b4a1e17b6  /bin/bash    #by ID

// 停止运行的容器
docker stop 容器id 

// 删除容器(需要停止容器)
docker rm 容器id

3、docker 登录
docker login
4、本地创建镜像
// 创建一个 test_fe ,tag为v1.0的镜像 注意加上 .
docker build -t test_fe:v1.0 .

docker tag test_fe:v1.0 路径/test_fe:v1.0
// 提交上传
docker push 路径/test_fe:v1.0

注意:后面要加.表示当前目录下的Dockerfile 构建。
以下是我在前端构建时Dockerfile的文件,参考:

# Base images 基础镜像
FROM alpine:3.9

#MAINTAINER 维护者信息
LABEL maintainer="dzk"

# 设置镜像仓库地址
RUN  echo http://mirrors.aliyun.com/alpine/v3.9/main > /etc/apk/repositories; \
     echo http://mirrors.aliyun.com/alpine/v3.9/community >> /etc/apk/repositories

RUN apk --update --no-cache add nginx && mkdir /run/nginx/ && mkdir -p /var/www/html \
    && rm -rf /var/cache/apk/* \
    && rm -rf /root/.cache \
    && rm -rf /tmp/*

#COPY 需要准备Nginx的配置nginx.conf
COPY ./dist/ /var/www/html
COPY ./nginx.conf /etc/nginx

#EXPOSE 映射端口
EXPOSE 80

#CMD 运行以下命令
CMD ["/usr/sbin/nginx", "-g", "daemon off;"]

5、docker 镜像导入导出
# 本地打包镜像:
docker save -o xxx.tar  镜像名1:Tag版本   镜像名2:Tag版本 

#本地导入镜像: 
docker load -i xxx.tar
6、下载运行镜像

示例:

// 下载镜像: portainer
docker pull portainer/portainer

// 启动:portainer
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer  portainer/portainer
7、拷贝容器内容出来修改、将修改的导入到镜像
// 修改device容器中的/srv/server/test.py
docker cp device:/srv/server/test.py .

docker cp device:/srv/server/test.py

docker commit 容器名 镜像:tag
docker-compose down 后重启
docker-compose up -d
8、docker-compose
// 拉取构建  
docker-compose up -d
// 停止 
docker-compose down

docker-compose.yml文件基本配置,mysql、前端、phpadmin 为例:

version: "3"

services:
  mysql:
    image: mysql:5.6.45
    container_name: mysql
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: xxx
    volumes:
      - /data/mysql:/var/lib/mysql
      - ./sql/:/docker-entrypoint-initdb.d/
    restart: always

  protal:
    image: registry.xxx.com/xxx/test_fe:prod
    container_name: protal
    ports:
      - 8000:80
    restart: always

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin
    environment:
      - PMA_HOST=mysql
      - PMA_PORT=3306
    ports:
      - 10000:80
    depends_on:
      - mysql

上一篇
JS中encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent() JS中encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()
1、东西比较基础,只是做个总结说明 1.encodeURI(),和encodeURIComponent()是对字符-进行编码。2.decodeURI(),和decodeURIComponent()是对相应编码过的字符-进行解码。 使用场景
下一篇
linux常用命令 linux常用命令
基本命令1.目录查看 ls [-al]命令:ls [-al] ls 查看当前目录下的所有目录和文件 ls -a 查看当前目录下的所有目录和文件(包括隐藏的文件) ls -l 或 ll
2021-08-31