安装Docker
Window系统安装
了解
Linux系统安装
掌握
主要以Linux系统安装为主
安装
使用Linux的Root用户操作
如果没有root用户,或者用普通用户操作,需要使用
sudo
命令授权
卸载旧的Docker版本
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
安装Docker所需依赖包
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
设置下载镜像的国内的源地址
由于Docker下载镜像的地址是国外的服务器,需要替换为国内的阿里云或清华大学提供的源地址
下载速度会快一些,稳定一些
# 阿里云源地址 yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 二选一即可 # 清华大学源地址 yum-config-manager \ --add-repo \ https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
安装Docker
# 安装Docker的最新版本 yum install docker-ce docker-ce-cli containerd.io # 安装Docker指定的版本 # 查询Docker的版本信息 yum list docker-ce --showduplicates | sort -r # 根据查询出的Docker版本信息,指定版本安装 yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
启动Docker
systemctl start docker
关闭Docker
systemctl stop docker
Hello World
下载一个镜像
运行这个容器
输出一段字符串
Hello World
-
docker run ubuntu:15.10 /bin/echo "Hello World"
docker run
代表运行一个容器ubuntu:15.10
容器的镜像如果当前镜像没有,则会先下载这个镜像,然后再运行容器
/bin/echo"Hello World"
在控制台输出Hello World
内容
Docker镜像
官网地址
可以在官网中搜索相关的镜像,查看对应的版本和描述信息
描述信息中可以看到如何使用当前的镜像
版本的内容是当前镜像的版本号,默认是最新的版本
latest
搜索镜像
-
docker search 镜像名称
通过命令在命令行中进行查找镜像内容
-
NAME
镜像名称
DESCRIPTION
镜像描述
STARS
点赞数
OFFICIAL
是否官方
AUTOMATED
是否开源
-
下载镜像
-
# 下载最新版本的镜像 docker pull 镜像名称 # 指定下载版本号的镜像 docker pull 镜像名称:版本号
-
查看本地镜像
-
docker images
查看本地已经下载好的Docker镜像
-
REPOSITORY
仓库的镜像名称
TAG
镜像版本号
IMAGE ID
镜像唯一标识
CREATED
镜像创建的时间
SIZE
镜像文件大小
-
删除镜像
-
docker rmi 镜像ID
删除镜像时,必须停止容器,而且需要将容器删除
就算容器没有在运行,只要它存在就无法删除镜像
-
Docker容器
查看当前正在运行的容器
-
docker ps
正在运行的容器可以查看到
-
查看所有容器
-
docker ps -a
所有的容器包括运行中的和停止的容器,都可以查看到
-
CONTAINER ID
容器的唯一标识
IMAGE
容器加载镜像
COMMAND
执行的命令
CREATED
创建容器的时间
STATUS
容器运行的状态
运行的时间
已经停止的时间
PORTS
宿主机和容器关联的端口号
NAMES
容器名称
-
删除容器
docker rm 容器ID
根据容器ID删除容器
因为一个镜像可以运行多个容器,但是容器的名字不能重复,容器ID不能重复
创建容器
-
#语法 docker run -it --name=容器名称 镜像名称:版本号 /bin/bash # 指定redis最新版本的镜像创建容器 # 创建并运行容器,以交互式的方式运行,然后进行容器内部 docker run -it --name=myRedis redis:latest /bin/bash # 指定redis最新版本的镜像创建容器 # 创建并运行容器,以守护式的方式运行,后台运行,不进入容器内部 docker run -id --name=myRedis redis:latest # 容器内部,没有vi/vim等命令,想要安装,首先要保证宿主机是可以联网 # 进入容器内部执行命令 apt update apt install -y vim # 容器内部想要退出到宿主机 # 以交互式的方式运行时,创建容器后会进入容器内部,此时执行退出操作,会关闭掉容器 # 以守护式的方式运行时,创建容器后不会进入容器内部,需要手动的进入容器内部,进入容器后,此时执行退出操作,则不会关闭掉容器 exit # 创建一个Redis的容器,并进行端口的映射 # -p 宿主机端口:容器端口 docker run -id --name aliyunRedis -p 1111:6379 redis:latest # 创建一个Mysql的容器,端口映射和目录挂载 # -v 宿主机目录:容器目录 docker run -id --name aliyunMysql -p 2222:3306 -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7.36
-
docker run
运行容器
-
--name=myRedis
容器的名称
-
-i
交互式运行
-
-t
开启终端
-
-d
守护式运行,后台运行
-
-it
创建容器,并通过终端执行,进入容器内部
如果你有想要操作容器内部的方式,可以进入容器内部进行执行一些操作
进入到容器内部,不会运行容器的组件,需要手动进行操作
比如Redis进入执行
redis-server &
进行后台运行
-
-id
创建容器,后台运行
以守护式的方式运行容器,组件会被运行
-
-itd
创建容器,并通过终端执行,进入容器内部,和
-it
一样的意思
-
-p
端口映射,将宿主机的端口映射到容器的端口,进行绑定
然后操作宿主机的端口就相当于操作容器的端口
-
-v
目录挂载,将宿主机的目录和容器目录进行绑定
这样做的目的就是将容器中存放的一些数据,可以同步到宿主机上
这样防止容器数据丢失
即使容器出现问题,删除了之后,将目录重新进行挂载,马上即可恢复原来的数据
细节
如果当前使用的容器不知道怎样使用,可以看官网提供的描述信息
上面有很多详细的参数的介绍
-
使用Docker安装FastDFS
下载镜像
-
docker pull season/fastdfs
-
创建
tracker
容器-
docker run -ti -d --name trakcer -v ~/tracker_data:/fastdfs/tracker/data --net=host season/fastdfs tracker
-
创建
storage
容器-
docker run -ti --name storage -v ~/storage_data:/fastdfs/storage/data -v ~/store_path:/fastdfs/store_path --net=host -e TRACKER_SERVER:宿主机ip:22122 season/fastdfs storage
-
查看容器ID,修改
storage
容器的配置文件,启动将storage.conf配置文件复制到宿主机中
-
# 查看运行的容器ID docker ps # 语法: docker cp 代表复制的意思 # 用法1: docker cp 容器ID:容器中的文件 保存的宿主机的目录(.代表当前目录) # 用法2: docker cp 宿主机文件 容器ID:容器中路径 # 将宿主机的文件复制到容器中的路径中,如果有相同文件,则直接覆盖 docker cp 容器ID:/etc/fdfs/storage.conf .
修改storage.conf配置文件
修改tracker路径,修改为自己的ip地址(Linux虚拟机)
将修改后的storage.conf配置文件覆盖到容器中
-
docker cp storage.conf 容器ID:/etc/fdfs/
-
重新启动storage
进入容器内部,通过命令重新启动
-
docker exec -it 容器ID /bin/bash
容器内部通过
fdfs_storaged /etc/fdfs/storage.conf start
通过代码进行远程测试了
通过宿主机的本地目录挂载查看是否上传成功
-