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 安装包的方式安装
1.1.2安装Docker-Ce的依赖# yum localinstall containerd.io-1.2.6-3.3.fc30.x86_64.rpm
1.1.3安装Docker客户端# rpm -ivh libcgroup-0.41-19.el8.x86_64.rpm
1.1.4安装Docker ce# rpm -ivh docker-ce-cli-19.03.13-3.el8.x86_64.rpm
1.2线上安装 1.2.1为本地yum提供远程repo信息# rpm -ivh docker-ce-19.03.13-3.el8.x86_64.rpm
1.2.2安装依赖# curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
1.2.3安装docker-ce# 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.4启动命令# yum install -y docker-ce
1.2.5查看状态# systemctl start docker
2.docker 基本命令# docker info
使用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 删除数据卷文件并释放磁盘空间
# docker volume rm $(docker volume ls -qf dangling=true)
28 保存镜像到本地
# docker save -o nginx.war nginx
29 将文件导入到docker
# docker load -i nginx.war
30 标记本地镜像
# docker tag nginx test/nginx9
31 清理镜像
# docker image prune
32 将日志文件清空
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宿主机数据卷 宿主机数据卷其实就是将宿主机中的目录和容器中的目录进行挂载。# truncate -s 0 /var/lib/docker/containers/a376aa694b22ee497f6fc9f7d15d943de91c853284f8f105ff5ad6c7ddae7a53/*-json.log
例: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
查看数据卷在宿主机中的目录
/var/lib/docker/volumes/nginx-volume/_data就是宿主机中挂载的目录了。 3.3匿名数据卷# docker volume inspect nginx-volume
创建容器并使用匿名数据卷挂载
# docker run --name nginx -itd -p 80:80 -v /etc/nginx nginx
查看数据卷,发现数据卷中多了一个新的数据卷
# docker volume ls
查看数据卷详细信息
4.docker网络# docker volume inspect 0829c4a2b44d2d17c9e85e3a96213401cd9fa8fccfa98315ab6385cfe836ea69
docker 安装后会自动创建三种网络,bridge ,host,none
查看网络
4.1bridge模式 默认的网络模式。bridge 模式下容器没有一个公有 ip, 只有宿主机可以直接访问 , 外部主机是不可见的 , 但容器通过宿主机的NAT 规则后可以访问外网。 bridge网络的表现形式是docker0这个网络接口,默认通过docker0这个接口进行通信。 可以使用命令 ip a查看多了一个docker0的网络接口# docker network ls
查看bridge网络的详细信息
新建bridge网络# docker network inspect bridge
可以在创建容器时指定使用的网络 例: docker run --name nginx -itd --network test-bridge -p 80:80 nginx 4.2host模式 相当于 Vmware 中的 NAT 模式,与宿主机在同一个网络中,但没有独立 IP 地址。 4.3none模式 容器并不进行任何网络配置 5.docker-compose# docker network create -d bridge test-bridge
安装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条)