docker常用命令
-
从服务拉取镜像
# docker pull [镜像名称] docker pull nginx
-
查看镜像
docker images
-
删除镜像
# docker rmi [镜像名称]:[镜像版本] docker rmi nginx:latest
-
推送镜像到服务
# docker push [镜像名称] docker push nginx
-
保存镜像为一个压缩包
# docker save -o [保存的目标文件名称] [镜像名称] docker save -o nginx.tar.gz nginx
-
加载压缩包为镜像
# docker load -i [压缩包] docker load -i nginx.tar
-
docker run:创建并运行一个容器,处于运行状态
docker run --name mynginx -p 80:80 -d nginx
- docker run :创建并运行一个容器
- –name : 给容器起一个名字,比如叫做mynginx
- -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
- -d:后台运行容器
- nginx:镜像名称,例如nginx
-
让一个运行的容器暂停
# docker pause [容器名称] docker pause mynginx
-
让一个容器从暂停状态恢复运行
# docker unpause [容器名称] docker unpause mynginx
-
停止一个运行的容器
# docker stop [容器名称] docker stop mynginx
-
让一个停止的容器再次运行
# docker start [容器名称] docker start mynginx
-
删除一个容器
# docker rm [容器名称] docker rm mynginx # 强制删除 docker rm -f [容器名称] docker rm -f mynginx
-
进入容器
docker exec -it mynginx bash
命令解读:
-
docker exec :进入容器内部,执行一个命令
-
-it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
-
mynginx :要进入的容器的名称
-
bash:进入容器后执行的命令,bash是一个linux终端交互命令
-
-
查看容器日志
# docker logs [容器名称] docker logs mynginx # 持续查看日志 docker logs -f [容器名称] docker logs -f mynginx
-
查看容器状态:
docker ps docker ps -a # 查看所有容器,包括已经停止的
-
数据卷操作命令
- 数据卷操作的基本语法如下:
- docker volume [COMMAND]
- docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作,如下以数据卷名称为html为例:
# create 创建一个volume docker volume create html # inspect 显示一个或多个volume的信息 docker volume inspect html # ls 列出所有的volume docker volume ls # prune 删除未使用的volume docker volume prune # rm 删除一个或多个指定的volume docker volume rm html
-
Dockerfile文件编写及镜像构建
# 指定基础镜像 FROM ubuntu:16.04 # 配置环境变量,JDK的安装目录 ENV JAVA_DIR=/usr/local # 拷贝jdk和java项目的包 COPY ./jdk8.tar.gz $JAVA_DIR/ COPY ./eureka-server-1.0-SNAPSHOT.jar /tmp/eurekaserver.jar # 安装JDK RUN cd $JAVA_DIR \ && tar -xf ./jdk8.tar.gz \ && mv ./jdk1.8.0_144 ./java8 # 配置环境变量 ENV JAVA_HOME=$JAVA_DIR/java8 ENV PATH=$PATH:$JAVA_HOME/bin # 暴露端口 EXPOSE 8080 # 入口,java项目的启动命令 ENTRYPOINT java -jar /tmp/eurekaserver.jar
- 镜像构建
docker build -t eureka:1.0 .
-
docker-compose
- docker-compose.yml配置文件
version: "3.2" services: nacos: image: nacos/nacos-server environment: MODE: standalone ports: - "8848:8848" mysql: image: mysql:5.7.25 environment: MYSQL_ROOT_PASSWORD: root volumes: - "$PWD/mysql/data:/var/lib/mysql" - "$PWD/mysql/conf:/etc/mysql/conf.d/" userservice: build: ./userservice orderservice: build: ./orderservice gateway: build: ./gateway ports: - "8080:8080"
- docker-compose常用命令
# 构建镜像启动容器 docker-compose up -d # 查看日志 docker-compose log -f # 停止容器 docker-compose down
-
docker registry 私有仓库搭建
# docker-compose.yml version: '3.0' services: registry: image: registry volumes: - ./registry-data:/var/lib/registry ui: image: joxit/docker-registry-ui:static ports: - 8080:80 environment: - REGISTRY_TITLE=pizm私有仓库 - REGISTRY_URL=http://registry:5000 depends_on: - registry