Docker的基本命令基础介绍以及如何在Linux环境下安装
目录一. Docker简介1.基本组成架构镜像(images)容器(Container)仓库(Repository)2.Centos7下Docker的安装3.Centos8下Docker的安装4.镜像的基本命令5.容器的基本命令场景一:Docker安装Mysql创建并启动场景二:Docker安装Redis创建并启动场景三:Docker安装Ngnix创建并启动一. Docker简介Docker 是一
目录
一. Docker简介
Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。同时,Docker也是一种新兴的虚拟化技术,能够一定程度上的代替传统虚拟机。
1.基本组成架构
镜像(images)
从认识上简单的来说,就是面向对象中的类,相当于一个模板。从本质上来说,镜像相当于一个文件系统。Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
容器(Container)
容器,从认识上来说,就是类创建的实例,就是依据镜像这个模板创建出来的实体。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。
仓库(Repository)
仓库,从认识上来说,就好像软件包上传下载站,有各种软件的不同版本被上传供用户下载。镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。
2.Centos7下Docker的安装
Centos7安装docker,centos8安装会有写不同可能会报错!!!下面再说
- 查看系统内核(必须是3.10以上版本)
uname -r
- 查看虚拟机配置
cat /etc/os-release
确定好虚拟机的配置后安装Docker
参照官网:
-
卸载Docker旧的版本
yum remove docker \ > docker-client \ > docker-client-latest \ > docker-common \ > docker-latest \ > docker-latest-logrotate \ > docker-logrotate \ > docker-engine
-
yum工具包安装
yum install -y yum-utils
-
下载镜像设置为阿里云镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
建议更新软件包的索引
yum makecache fast
-
安装Docker相关的源 docker-ce为社区版 docker-ee为企业版
yum install docker-ce docker-ce-cli containerd.io
-
启动Docker
systemctl start docker
-
判断Docker是否安装成功
docker version
出现这个,安装成功!
3.Centos8下Docker的安装
安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
下载Docker镜像
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装Docker
yum install docker-ce docker-ce-cli containerd.io
可能出现问题:
解决包的冲突:
yum erase podman buildah
再次执行:
yum install docker-ce docker-ce-cli containerd.io
启动容器
systemctl start docker
开机自动启动
systemctl enable docker
帮助命令
docker version # 显示docker的基本信息
docker info # 显示docker的系统信息包括镜像和容器的数量
docker 命令 --help # 帮助命令
安装成功之后,配置Docker镜像加速:
# 编辑daemon.json文件,无则自动创建
vi /etc/docker/daemon.json
加入镜像加速:
{
"registry-mirrors": [
"https://ccr.ccs.tencentyun.com/",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.baidubce.com/",
"https://dockerproxy.com/"
]
}
4.镜像的基本命令
查看docker安装的所有镜像
docker images -a # 查看全部镜像
docker images -q # 查看所有镜像id
docker search搜索镜像
docker search mysql # 搜索mysql镜像
docker pull 下载镜像
docker pull mysql :5.7 # 指定版本下载
docker rmi删除镜像
docker rmi -f id # 删除id的镜像
docker rmi -f ${docker images -aq} # 删除全部的镜像
5.容器的基本命令
新建容器并启动
docker run [参数] image
# 参数
--name="Name" 容器名字,用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口
列出所有运行的容器
docker ps -a # 列出当前正在运行的容器和历史运行过的容器
docker ps -n=? # 显示正在创建的容器
docker ps -q # 显示当前容器的编号
退出容器
exit # 容器停止并退出
Ctrl + p + q # 容器不停止退出
删除容器
docker rm id # 删除指定的容器
docker rm -f $(docker ps -aq) # 删除所有容器
启动和停止容器
systemctl restart docker # 重启docker
docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止当前正在运行的容器
docker kill 容器id # 强制停止
可以通过配置阿里云镜像来下载容器
登录阿里云==》容器镜像服务==》镜像中心==》镜像加速器
场景一:Docker安装Mysql创建并启动
参考文章:https://blog.csdn.net/zouxuhang/article/details/107824441
-
下载mysql5.7
docker pull mysql:5.7
-
创建容器实例并启动,挂载并启动
-v 表示外部文件的挂载到容器的文件中容易操作 并且可以同步
docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7
设置挂载目录/mydata/mysql/conf
下的文件my.cnf
需要指定mysql的编码格式为UTF-8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation connection = utf8_unicode_ci
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
-
进入容器中
docker exec -it mysql /bin/bash mysql为容器名字
查看安装在那个目录
whereis mysql
场景二:Docker安装Redis创建并启动
-
下载redis
docker pull redis
-
挂载目录并创建redis.conf
mkdir -p /mydata/redis/conf touch redis.conf #在conf文件夹下运行此命令
-
挂载并启动
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \ -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \ -d redis redis-server /etc/redis/redis.conf
-
进入redis客户端
docker exec -it redis redis-cli
-
需要持久化redis数据(AOF)
在redis.conf文件中配置
appendonly yes
其它配置参考官方:redis.conf
场景三:Docker安装Ngnix创建并启动
docker run -p 80:80 --name nginx -d nginx:1.10
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html
-v /mydata/nginx/logs:/var/log/nginx
-v /mydata/nginx/conf:/etc/nginx
-d nginx:1.10
更多推荐
所有评论(0)