docker基本使用总结

1.安装docker

docker 官网地址Docker run reference | Docker Documentation

1.1离线安装

下载离线包,网址:Index of linux/centos/8/x86_64/stable/Packages/

离线安装docker需要下载3个包,containerd.io ,docker-ce-cli,docker-ce 和libcgroup-0.41-19.el8.x86_64.rpm

1.1.1首先安装containerd.io,由于container-io需要秘钥,所以需要使用yum安装方式

注:所有的安装都是有顺序的,顺序乱了,无法安装注意是centos的还是ubuntu,ubuntu的deb请使用 sudu dpkg -i 安装包的方式安装

# yum localinstall containerd.io-1.2.6-3.3.fc30.x86_64.rpm

1.1.2安装Docker-Ce的依赖

# rpm -ivh libcgroup-0.41-19.el8.x86_64.rpm

1.1.3安装Docker客户端

# rpm -ivh docker-ce-cli-19.03.13-3.el8.x86_64.rpm

1.1.4安装Docker ce

# rpm -ivh docker-ce-19.03.13-3.el8.x86_64.rpm

1.2线上安装

1.2.1为本地yum提供远程repo信息

# curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

1.2.2安装依赖

#yum install-y https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm

1.2.3安装docker-ce

# yum install -y docker-ce

1.2.4启动命令

# systemctl start docker

1.2.5查看状态

# docker info

2.docker 基本命令

使用docker的命令很多,这里就梳理几个常用的命令,用的时候可是使用 --help 查看可以携带的参数

1 启动docker

# systemctl start docker | service start docker

2 查看docker状态

# systemctl status docker | service status docker

3 查看docker服务状态

# docker info

4 停止

# docker systemctl stop docker | service stop docker

5 搜索服务

# docker search 镜像名

6 下载镜像

# docker pull 镜像名:版本 //可以去docker hup 中查看版本 latest 表示最新版

7 查看本地镜像

# docker images //列出本地有的镜像

8 删除镜像

# docker rmi 镜像名:版本号 | IMAGE_ID

9 根据镜像创建容器(不推荐使用)

# docker create --name nginx -p 80:80 nginx

docker create --name 自定义容器名 -p 映射到宿主机的端口:容器内端口 镜像名

具体细节,请参考官网文档

10 查看正在运行的容器

# docker container ls

# docker ps // docker ps -a 查看所有容器

11 启动 容器

# docker start 容器名

12 停止容器

# docekr stop 容器名

13 强杀容器

# docker kill 容器名

14 创建并运行容器(推荐使用)

# docker run -d --name nginx -p 80:80 nginx

// docker run -d --name 自定义容器名 -p 映射到宿主机的端口:容器内端口 镜像名

携带参数较多,具体细节,请参考官网文档

15 进入容器内部

# docker exec -it 容器名 /bin/bash

16 查找容器

# whereis mysql

17 退出容器

# exit

18 查看日志

# docker logs -f容器名

19 查看容器中的进程

# docker top 容器名

20 查看容器内部信息

# docker inspect 容器名

21 把容器内部信息复制到本地

# docker cp nginx:/etc/nginx /data/

// docker cp 容器名:复制的文件 复制到本地的路径

22 暂停容器

# docker pause 容器名

23 暂停后恢复容器

# docker unpause 容器名

24 删除容器

# docker rm 容器名

25 查看docker占用的磁盘情况

# docker system df

26 删除未使用的镜像和容器释放磁盘空间

# docker system prune -a

27 删除数据卷文件并释放磁盘空间

# dockervolumerm$(dockervolumels-qfdangling=true)

28 保存镜像到本地

# docker save -o nginx.war nginx

29 将文件导入到docker

# docker load -i nginx.war

30 标记本地镜像

# docker tag nginx test/nginx9

31 清理镜像

# docker imageprune

32将日志文件清空

# truncate-s0/var/lib/docker/containers/a376aa694b22ee497f6fc9f7d15d943de91c853284f8f105ff5ad6c7ddae7a53/*-json.log

3.docker数据卷

数据卷 (Data Volumes) 是一个可供一个或多个容器使用的特殊目录,它将主机操作系统目录直接映射进容器。

注意事项:

挂载数据卷,最好是通过 run 而非 create/start 创建启动容器, create/start 命令创建启动容器后,再挂载数据卷相当麻烦,要修改很多配置文件,但并非不可以。

docker 官网推荐尽量进行目录挂载,不要进行文件挂载

有三种数据卷类型:

1. 宿主机数据卷:直接在宿主机的文件系统中但是容器可以访问( bind mount )

2. 命名的数据卷:磁盘上 Docker 管理的数据卷,但是这个卷有个名字。

3. 匿名数据卷:磁盘上 Docker 管理的数据卷,因为没有名字想要找到不容易, Docker 来管理这些文件。

数据卷其实都在(如果没有网络文件系统等情况下)宿主机文件系统里面的,只是第一种是在宿主机内的特定目录下,而后两种则在docker 管理的目录下,这个目录一般是 /var/lib/docker/volumes/

推荐大家使用 宿主机数据卷 方式持久化数据

3.1宿主机数据卷

宿主机数据卷其实就是将宿主机中的目录和容器中的目录进行挂载。

例:docker run --name nginx -itd -p 80:80 -v /data/nginx/:/etc/nginx nginx

其中/data/nginx 就是我们挂载的目录这样就可以保证容器内中/etc/nginx和宿主机中的目录文件保持一致,即使容器销毁,宿主机中的目录也是存在的。

3.2命名数据卷

例:docker run -itd --name nginx -p 80:80 -v nginx-volume:/etc/nginx nginx //nginx-volume为自定义的数据卷名称

查看数据卷

# docker volume ls

查看数据卷在宿主机中的目录

# docker volume inspect nginx-volume

/var/lib/docker/volumes/nginx-volume/_data就是宿主机中挂载的目录了。

3.3匿名数据卷

创建容器并使用匿名数据卷挂载

# docker run --name nginx -itd -p 80:80 -v /etc/nginx nginx

查看数据卷,发现数据卷中多了一个新的数据卷

# docker volume ls

查看数据卷详细信息

# docker volume inspect 0829c4a2b44d2d17c9e85e3a96213401cd9fa8fccfa98315ab6385cfe836ea69

4.docker网络

docker 安装后会自动创建三种网络,bridge ,host,none

查看网络

# docker network ls

4.1bridge模式

默认的网络模式。bridge 模式下容器没有一个公有 ip, 只有宿主机可以直接访问 , 外部主机是不可见的 , 但容器通过宿主机的NAT 规则后可以访问外网。

bridge网络的表现形式是docker0这个网络接口,默认通过docker0这个接口进行通信。

可以使用命令 ip a查看多了一个docker0的网络接口

查看bridge网络的详细信息

# docker network inspect bridge

新建bridge网络

# docker network create -d bridge test-bridge

可以在创建容器时指定使用的网络

例:  docker run --name nginx-itd --network test-bridge -p 80:80 nginx

4.2host模式

相当于 Vmware 中的 NAT 模式,与宿主机在同一个网络中,但没有独立 IP 地址。

4.3none模式

容器并不进行任何网络配置

5.docker-compose

安装docker-compose

官网地址Compose file | Docker Documentation

下载

https://github.com/docker/compose

下载最新版本: 1.27.4

mv /data/docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

cp /data/docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

chmod + x /usr/local/bin/docker-compose

开发环境可以授予最高权限

chmod 777 /usr/local/bin/docker-compose

docker-compose -v

docker-compose --version

docker-compose version

卸载只需要删除二进制文件就可以了

docker-compose 主要是编写yaml文件

yaml文件主要包含4个一级key:version、service 、network 、volumes

version 是必须文件的第一行,它定义了Compose文件合适(主要是版本)

service 用于定义不同的应用服务

network 用于指引Docker创建新的网络。默认情况下,会创建bridge网络

volumes用于指引Docker来创建新的卷

这里是一个nginx的测试用例可以用来参考,具体yaml的指令请到官网查阅

version: '3' 
services:
 test-nginx:
   restart: always
   container_name: test-nginx
   volumes:
     - /data/nginx:/etc/nginx/
   image: nginx:1.19.3-alpine
   ports:
     - 80:80

启动服务

docker-compose up -d

停止服务

docker-compose down

列出所有运行容器

docker-compose ps

查看服务日志

docker-compose logs

构建或者重新构建服务

docker-compose build

启动服务

docker-compose start

停止已运行的服务

docker-compose stop

重启服务

docker-compose restart

官网地址: https://docs.docker.com/compose/reference/build/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值