docker详解

一、docker相关命令

1、docker进程相关命令

启动docker服务:systemctl start docker

停止docker服务:systemctl stop docker

重启docker服务:systemctl restart docker

查看docker服务状态:systemctl status docker

设置开机启动docker服务:systemctl enable docker

2、docker镜像相关命令

查看本地所有的镜像:docker images

查看本地所有的镜像的id:docker images –q

从网络中查找需要的镜像:docker search 镜像名称

拉取镜像:docker pull 镜像名称 (镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本,镜像版本可以去docker hub 搜索对应镜像查看

删除本地镜像:docker rmi 镜像id (删除指定本地镜像)  

docker rmi `docker images -q`  (删除所有本地镜像)

3、docker容器相关命令

查看容器:docker ps # 查看正在运行的容器

docker ps –a # 查看所有容器(包含退出的)

创建并启动容器:docker run 参数

参数说明:

- i :保持容器 运行。通常 -t 同时使用。加入 it 这两个参数后,容器创建后自动进入容器 退出 容器后,容器自动关闭。
-t :为容器重新分配一个伪输入终端,通常与 -i 同时使用
- d :以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用 docker exec 进入容器。退出后,容器不会关闭
-it 创建的容器一般称为交互式 容器, -id 创建的容器一般称为守护式容器
--name :为创建的容器命名

进入容器:docker exec 参数 (退出容器后,不会关闭容器)

停止容器:docker stop 容器名称

启动容器:docker start 容器名称

删除容器:docker rm 容器名称(如果容器是运行状态则删除失败,需要停止容器才能删除

查看容器信息:docker inspect 容器名称

二、数据卷

什么是数据卷?

  • 数据卷是宿主机中的一个目录或文件
  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 一个数据卷可以被多个容器同时挂载
  • 一个容器也可以被挂载多个数据卷

数据卷作用:

  • 容器数据持久化
  • 外部机器和容器间接通信
  • 容器之间数据交换

 配置数据卷:

创建启动容器时,使用 –v 参数 设置数据卷:

docker run ... –v 宿主机目录(文件):容器内目录(文件) ...

注意事项:

1. 目录必须是绝对路径

2. 如果目录不存在,会自动创建

3. 可以挂载多个数据卷

docker详解_第1张图片

  配置数据卷容器:

docker详解_第2张图片

 创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )

例如:将c1和c2容器挂载到c3容器上

docker run –it --name=c1 --volumes-from c3 centos:7 /bin/bash

docker run –it --name=c2 --volumes-from c3 centos:7 /bin/bash

三、docker镜像原理

docker详解_第3张图片

 docker详解_第4张图片

四、定义dockerfile,发布springboot项目

1、定义父镜像:FROM java:8

2、定义作者信息:MAINTAINER  itheima >

3、将jar包添加到容器: ADD springboot.jar app.jar

4、定义容器启动执行的命令:CMD java–jar app.jar

5、通过dockerfile构建镜像:docker bulid –f dockerfile文件路径 –t 镜像名称:版本

五、使用docker compose编排nginx+springboot项目

 1、创建docker-compose目录

mkdir ~/docker-compose
cd ~/docker-compose

2、编写 docker-compose.yml 文件

version: '3'
services:
  nginx:
   image: nginx
   ports:
    - 80:80
   links:
    - app
   volumes:
    - ./nginx/conf.d:/etc/nginx/conf.d
  app:
    image: app
    expose:
      - "8080"

3、创建./nginx/conf.d目录

mkdir -p ./nginx/conf.d

4、在./nginx/conf.d目录下 编写nginx.conf文件

server {
    listen 80;
    access_log off;

    location / {
        proxy_pass http://app:8080;
    }
   
}

5、在~/docker-compose 目录下 使用docker-compose 启动容器

 docker-compose up

六、docker私有仓库

1、私有仓库搭建

# 1、拉取私有仓库镜像 
docker pull registry
# 2、启动私有仓库容器 
docker run -id --name=registry -p 5000:5000 registry
# 3、打开浏览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog,看到{"repositories":[]} 表示私有仓库 搭建成功
# 4、修改daemon.json   
vim /etc/docker/daemon.json    
# 在上述文件中添加一个key,保存退出。此步用于让 docker 信任私有仓库地址;注意将私有仓库服务器ip修改为自己私有仓库服务器真实ip 
{"insecure-registries":["私有仓库服务器ip:5000"]} 
# 5、重启docker 服务 
systemctl restart docker
docker start registry

2、将镜像上传至私有仓库

# 1、标记镜像为私有仓库的镜像     
docker tag centos:7 私有仓库服务器IP:5000/centos:7
 
# 2、上传标记的镜像     
docker push 私有仓库服务器IP:5000/centos:7

3、从私有仓库拉取镜像

#拉取镜像 
docker pull 私有仓库服务器ip:5000/centos:7

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