【Linux】Docker安装、镜像操作、容器操作、目录映射、网络模式

1.Docker

Docker是一个用Go语言写的开源的容器引擎,采用C/S架构,可以快速搭建一个轻量级的、可移植的、自给自足的容器。Docker主要包括以下几个部分
【Linux】Docker安装、镜像操作、容器操作、目录映射、网络模式_第1张图片

2.安装Docker

Ubuntu系统安装。安装完之后会有一个地址为172.17.0.1的docker0网卡

apt install docker-ce -y
systemctl [start|stop|restart|status|...] docker
docker version|info

使用国内镜像

# 定制加速仓库(国内镜像站)
echo '{"registry-mirrors": ["https://kcmn5udq.mirror.aliyuncs.com"]}' > /etc/docker/daemon.json

# 重启服务
systemctl restart docker

3.Docker基本操作

3.1 镜像管理

搜索、获取、查看、历史

# 搜索镜像
docker search [image_name]

# 获取镜像
docker pull [image_name]

# 查看镜像
docker images 

标签、删除、导出、导入

# 添加标签
docker tag [old_image]:[old_version] [new_image]:[new_version]
# 例如 docker tag nginx:latest mynginx:v1.0

# 删除镜像(当镜像的引用计数为0时才真正删除)
docker rmi [image_id/image_name:image_version]
或
docker image rm [image_id/image_name:image_version]
# 例如 docker image rm mynginx:v1.0

# 导出镜像
docker save -o [包文件] [镜像] # 例如 docker save -o nginx.tar nginx:latest
或
docker save > [包文件] [镜像] 
或
docker save [镜像] > [包文件]

# 导入镜像
docker load < [image.tar] # 例如 docker load < nginx.tar
或
docker load --input [image.tar]
或
docker load -i [image.tar]
3.2 容器管理

我们把镜像运行成一个容器

查看容器(包括已停止运行的容器)

docker ps -a
或
docker container ls -a

# 若不加-a,则只显示正在运行的容器

创建并启动、启动、关闭、删除

# 以下命令的container可省略

# 创建并运行
docker run -itd --name <别名>  # 例如 docker run -itd --name mynginx nginx

# 启动
docker container start [container_id或别名]

# 停止
docker container stop [container_id或别名]

# 删除
docker rm [-f] [container_id]

登录、提交、日志、属性

# 以下命令的 container可省略

# 登录/进入容器
docker container exec -it b98d2e4322ac /bin/bash
# 例如 docker exec -it b98d2e4322ac /bin/bash
# 使用 exit 退出容器

# 提交
docker commit -m '改动信息' -a "作者信息" [container_id] [new_image:tag]
# 例如 docker commit -m "增加了python环境" -a "pan" b98d2e4322ac mynginx_python:v1.0

# 日志
docker logs [container_id]

# 属性
docker inspect [container_id]
3.3 数据管理

数据卷可以将宿主机的目录一一映射到容器中,在创建容器时使用-v参数指定映射关系即可

docker run -itd --name [容器名字] -v [宿主机文件]:[容器文件] [镜像名称]
3.4 网络管理

Docker网络实现方式主要有端口映射和网络模式两种。我们要在创建容器的时候就指定网络实现方式

3.4.1 端口映射
docker -P|p [镜像名称]

P表示随机端口映射到宿主机,p表示指定映射端口

# P随机
docker run -d -P nginx
# p指定
docker run -d -p 192.168.8.13:777:80 --name nginx-2 nginx
3.4.2 网络模式
docker network help|ls|create|

bridge模式(桥接模式) 类似于VMware虚拟机的nat模式,宿主机与容器通信需要经过网关涉及网络转换,造成资源消耗
host模式(主机模式) 是直接使用宿主机的东西,即容器与宿主机共享网络
none模式不做任何网络配置,需要自己定制

为提高效率,一般使用host模式更多

# 重点命令(必须掌握)
docker run --network=host -itd --name <容器名称> <镜像名称>
# 例如 docker run --network=host -itd --name nginx-host nginx

# 断开网络
docker network disconnect bridge-test nginx-new-bri

# 连接网络
docker network connect bridge-test nginx-new-bri

你可能感兴趣的:(Linux,docker,linux,container,image)