基础篇-Docker常规安装简介

总体步骤

  1. 搜索镜像
  2. 拉取镜像
  3. 查看镜像
  4. 启动镜像
  5. 服务端口映射
  6. 停止容器
  7. 移除容器

安装tomcat

1. docker hub上面查找tomcat镜像

docker search tomcat

2. 从docker hub上拉取tomcat镜像到本地

docker pull tomcat

3. docker images查看是否有拉取到该tomcat

docker images

4. 使用tomcat镜像创建容器实例(也叫运行镜像) 

docker run -it -p 8080:8080 tomcat

-p 小写,主机端口:docker容器端口

-P 大写,随机分配端口

i:交互

t:终端

d:后台

5. 访问tomcat首页

localhost:8080

遇到的问题:

解决

可能一:

没有映射端口或者没有关闭防火墙

可能二:

把webapps.dist目录换成webapps:先将webapps这个空文件夹删除,再将webapp.dist重命名为webapps

重命名之后,再次访问localhost:8080

6. 免修改版说明

使用tomcat8这个特定版本:

docker pull billygoo/tomcat8-jdk8
docker run -d -p 8080:8080 --name mytomcat8 billygoo/tomcat8-jdk8

安装mysql

  1. docker hub上面查找mysql镜像
docker search mysql

2. 从docker hub上(阿里云加速器)拉取mysql镜像到本地标签为5.7

docker pull mysql:5.7

3. 使用mysql5.7镜像创建容器(也叫运行镜像)

简单版

使用mysql镜像

第一步:运行mysql:5.7镜像

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

注意:建议先使用ps -f | grep mysql命令先看一下宿主机是否有正在运行的mysql且端口3306是否被占用,如果占用,需要将映射端口换掉。

第二步:查看正在运行的容器

dockers ps

第三步:进入该mysql容器内

docker exec -it 容器ID /bin/bash
mysql -uroot -p

第四步:在该容器内建库建表插入数据

外部Win10使用小海豚软件连接运行在dokcer上的mysql容器实例服务,如下图所示:

客户端软件可以成功连接mysql容器。

问题 

问题一:插入中文数据试试

为什么报错?

因为使用docker的mysql容器有中文乱码的问题。

在docker里面的mysql容器实例输输入以下命令,内容如下: 

SHOW VARIABLES LIKE 'character%'

注意:不要在连接mysql的软件中输入上面的命令,否则显示的还是utf-8编码,但这不是真正的编码方式。

解决:详见下面的实战版。

问题二:删除容器后,里面的mysql数据如何办 

容器实例一删除,你还有什么? 删容器到跑路。。。。。?

实战版

  1. 新建mysql容器实例
docker run -d -p 3306:3306 --privileged=true \
-v /docker/mysql/log:/var/log/mysql \
-v /docker/mysql/data:/var/lib/mysql \
-v /docker/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql \
mysql:5.7

注:实战版运行mysql镜像的命令与简单版运行的命令差不多,只是多了三个挂载数据卷的命令。

2. 新建my.cnf --> 通过容器卷同步给mysql容器实例 (使用此步骤的目的是解决中文乱码的问题

[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8   

3. 重新启动mysql容器实例再重新进入并查看字符编码

再新建库新建表再插入中文测试

以上成功解决中文乱码的问题。

结论

之前的DB 无效 

修改字符集操作+重启mysql容器实例 

之后的DB 有效,需要新建 

结论:docker安装完MySQL并run出容器后,建议请先修改完字符集编码后再新建mysql库-表-插数据

假如将当前容器实例删除,再重新来一次,之前建的db01实例还有吗?

答案是还有,所以日常工作中建议挂载数据容器卷,这样即使删除了容器实例,当重新启动了该容器后,宿主机上对应的容器卷中的数据还会自动传递给该容器,保证了数据的不丢失。

安装redis

  • 从docker hub上(阿里云加速器)拉取redis镜像到本地标签为6.0.8
docker pull redis:6.0.8

  • 入门命令
docker run -d -p 6379:6379 redis;6.0.8
  • 命令提醒:容器卷记得加入--privileged=true

Docker挂载主机目录Docker访问出现cannot open directory .: Permission denied解决办法:在挂载目录后多加一个--privileged=true参数即可 

  • 在CentOS宿主机下新建目录/app/redis 
  1. 建目录
mkdir -p /app/redis

2. 将一个redis.conf文件模板拷贝进/app/redis目录下

3. /app/redis目录下修改redis.conf文件 

3.1 开启redis验证 可选 requirepass 123 

3.2 允许redis外地连接 必须 注释掉 # bind 127.0.0.1

3.3 daemonize no 

将daemonize yes注释起来或者 daemonize no设置,因为该配置和docker run中-d参数冲突,会导致容器一直启动失败

3.4 开启redis数据持久化 appendonly yes 可选 - 默认出厂的原始redis.conf

4. 使用redis6.0.8镜像创建容器(也叫运行镜像)

docker run  -p 6379:6379 --name myr3 --privileged=true \
-v /app/redis/redis.conf:/etc/redis/redis.conf \
-v /app/redis/data:/data \
-d redis:6.0.8 redis-server /etc/redis/redis.conf

测试redis-cli连接上来 

docker exec -it 运行着Redis服务的容器ID redis-cli

请证明docker启动使用了我们自己指定的配置文件

修改前 我们用的配置文件,数据库默认是16个 

修改后

宿主机的修改会同步给docker容器里面的配置。 - 记得重启服务 

安装Nginx

  • 见高级篇Portainer
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CentOS 是一种广泛使用的Linux操作系统,而NVIDIA-Docker是一个用于在容器中运行GPU加速应用程序的工具。对于在没有互联网连接的环境中安装NVIDIA-Docker,可以通过以下步骤进行离线安装。 1. 从NVIDIA官方网站下载所需的NVIDIA-Docker离线安装包(tar文件),包括NVIDIA-Docker的二进制文件和依赖项。确保选择适用于CentOS的正确版本。 2. 将下载的安装包传输到CentOS服务器上,可以使用U盘、移动硬盘等离线传输设备。 3. 在CentOS服务器上创建一个新的目录,用于解压下载的安装包。例如,可以使用以下命令创建一个名为nvidia-docker的目录: ``` mkdir nvidia-docker ``` 4. 将下载的安装包移动到nvidia-docker目录中。 5. 进入nvidia-docker目录并解压安装包。可以使用以下命令解压: ``` tar -xvf <安装包文件名>.tar.gz ``` 6. 解压后,进入解压得到的目录中,例如: ``` cd nvidia-docker-<版本号> ``` 7. 执行安装脚本以进行NVIDIA-Docker的离线安装。可以使用以下命令运行安装脚本: ``` ./install.sh ``` 8. 安装脚本会检查并安装NVIDIA-Docker所需要的依赖项,并将NVIDIA-Docker设置为默认的容器运行时。 9. 完成安装后,可以通过运行以下命令验证NVIDIA-Docker是否正确安装: ``` nvidia-docker run --rm nvidia/cuda nvidia-smi ``` 如果成功运行,并显示了GPU的信息,那么NVIDIA-Docker已成功安装并可以在离线环境中使用了。 请注意,离线安装可能需要手动处理依赖项,例如安装适当的驱动程序和库文件。因此,在进行离线安装之前,请确保已阅读官方文档并了解所需的所有依赖项。 ### 回答2: 在离线环境下安装NVIDIA-Docker,我们需要进行以下步骤: 1. 准备离线环境所需的安装包和资源: - NVIDIA-Docker安装包(.run文件) - NVIDIA的驱动程序(.run文件) - Docker安装包(.tar文件) - Docker镜像所需的显卡驱动(可从其他在线环境中提取) 2. 在离线机器上安装依赖项: - 首先,确保离线机器的操作系统为CentOS,并且已经安装了gcc、kernel-devel和kernel-headers等依赖包。 - 然后,通过运行NVIDIA驱动程序的.run文件来安装NVIDIA驱动。 3. 安装Docker: - 将Docker的.tar文件复制到离线机器上的目录中。 - 使用`tar -xvf`命令解压文件。 - 将解压后的文件夹复制到/usr/bin目录下,确保Docker可执行文件可用。 4. 安装NVIDIA-Docker: - 将离线机器连接到互联网,下载并复制NVIDIA-Docker安装包(.run文件)到离线机器上。 - 运行`chmod +x`命令赋予文件可执行权限。 - 运行`.run`文件来安装NVIDIA-Docker。 5. 配置NVIDIA-Docker: - 在/etc/docker/daemon.json文件中添加`"runtimes": {"nvidia": {"path": "/usr/bin/nvidia-container-runtime","runtimeArgs": []}}`,以告知Docker使用NVIDIA运行时。 - 通过运行`systemctl restart docker`重新启动Docker服务。 6. 验证安装: - 运行`docker run --gpus all nvidia/cuda:11.0-base nvidia-smi`命令,如果成功显示GPU信息,则表示安装成功。 需要注意的是,由于离线环境无法直接从互联网下载所需的安装包和资源,因此需要从其他在线环境中提取,并在离线机器上复制和安装。另外,要根据具体的硬件和软件版本来选择正确的驱动程序和安装包。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值