知识储备:
Ubuntu Docker 安装 | 菜鸟教程 Linux apt 命令 | 菜鸟教程
MacOS Docker 安装 | 菜鸟教程 Linux vi/vim | 菜鸟教程
Shell 教程 | 菜鸟教程 Linux 命令大全 | 菜鸟教程
Docker官网链接:https://www.docker.com/
Docker官方安装文档:https://docs.docker.com/install/linux/docker-ce/centos/
使用lsb_release -a
命令查看版本
根据自己的版本 找到对应【知识储备】链接进行卸载旧版本、官方源设置、安装 Docker Engine-Community、删除镜像、容器、配置文件等等初始化操作,文档都有这里不再赘述。我的是CentOS Docker 安装 | 菜鸟教程
卸载docker(防止冲突)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装 Docker基本环境
# 安装必须的依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 使用 yum-config-manager 工具将 Docker 的官方 CentOS 软件仓库添加到系统中。
# 这样做可以让系统通过 yum 命令安装和管理 Docker 相关的软件包。
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装 docker,docker-cli
sudo yum install docker-ce docker-ce-cli containerd.io
# 查看docker 版本
sudo docker version
配置阿里云镜像源(官方的比较卡的话)
$ sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
启动docker
# 启动 docker
sudo systemctl start docker
# 查看 docker 服务状态 running 就是启动成功
sudo systemctl status docker
# 设置 docker 开机自启
sudo systemctl enable docker
设置防火墙
# 开启防火墙
systemctl start firewalld
# 打开端口
firewall-cmd --permanent --add-port=[自己的端口]/tcp
# 重载防火墙
firewall-cmd --reload
# 查看防火墙列表
firewall-cmd --list-all
下图是根据文中命令搭建好的相关Nginx,Mysql,redis的docker容器;
在docker中如何搭建Nginx环境 ?
创建docker容器名为nginx
docker run \
-p 8082:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest
等价上面的命令(上面可读性强)
docker run -p 8082:80 --name nginx -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -d nginx:latest
以上命令行解释:
## docker run命令启动一个名为“nginx”的Nginx容器,并进行如下设置:
## 映射宿主机8082端口到容器80端口。
## 挂载宿主机目录到容器:
## 配置文件:/home/nginx/conf/nginx.conf至/etc/nginx/nginx.conf。
## 额外配置:/home/nginx/conf/conf.d至/etc/nginx/conf.d。
## 日志文件:/home/nginx/log至/var/log/nginx。
## 网站内容:/home/nginx/html至/usr/share/nginx/html。
## 容器以后台方式运行。
## 使用Nginx的最新版本镜像。
## \ 是用来进行行尾续行的符号,在Shell脚本或命令行中很常见。当使用 \ 结尾时,表示当前行并未结束,而是继续到下一行。这使得长命令可以分布在多行上,提高可读性。
如何在Docker中搭建Mysql?
# 1、拉取镜像,拉取mysql5.7版本
docker pull mysql:5.7
# 2、创建容器
docker run -p 3306:3306 --name mysql5.7 \
-v [卷挂载目录]/conf:/etc/mysql/conf.d \
-v [卷挂载目录]/log:/var/log/ \
-v [卷挂载目录]/data:/var/lib/mysql \
--restart=always \
-e MYSQL_ROOT_PASSWORD=[密码] \
-d mysql:5.7
# 3、远程连接,修改权限
### 进入容器
docker exec -it 容器名称/容器id bin/bash
### 登录mysql
mysql -uroot -p[数据库登录密码]
### 修改权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '[登录密码]' WITH GRANT OPTION;
### 如安装mysql8.0远程连接不上解决方法,因为8之后密码加密和之前版本不同
alter user 'root'@'%' identified with mysql_native_password by '[登录密码]';
### 刷新权限
flush privileges;
如何在Docker中搭建redis?
先下载redis配置文件, 下载地址: http://download.redis.io/redis-stable/redis.conf
# 1、拉取镜像
docker pull redis
# 2、将下载好的配置文件上传至服务器,并移动至卷挂载目录
cp [原位置] [目标位置:卷挂载目录]
# 3、创建容器
docker run -p 6379:6379 --name redis \
--log-opt max-size=100m \
--log-opt max-file=2 \
-v [卷挂载目录]/redis.conf:/etc/redis/redis.conf \
-v [卷挂载目录]/data:/data \
-d redis \
redis-server /etc/redis/redis.conf \
--bind 0.0.0.0 \
--protected-mode yes \
--requirepass [密码]
有哪些常用命令?
查看历史操作
histroy
查看目录中的文件
ls
启动docker
systemctl start docker
停止docker
systemctl stop docker
重启docker
systemctl restart docker
查看docke状态
systemctl status docker
开机启动docker
systemctl enable docker
查看docker概要信息
docker info
查看docker网络列表
docker network ls
查看docker持久化存储情况
docker volume ls
列出本地主机的镜像
docker images
已运行容器列表
docker ps -a
重启镜像
docker restart [serverName]
停止镜像
docker stop [serverName]
查看是否关闭防火墙
systemctl status firewalld
删除image文件
docker image rm [imageName]
查找超过1G的大文件1
find / -type f -size +1G -exec du -h {} \;
查找大文件,查找大于100m的文件,可以根据实际情况,适当调整查找的文件大小
find / -type f -size +100M
找出占用内存资源最多的前 10 个进程
ps -auxf | sort -nr -k 4 | head -10
找出占用 CPU 资源最多的前 10 个进程
ps -auxf | sort -nr -k 3 | head -10
查看 cpu 内存占用情况
ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head
linux全盘查找指定文件
find / -name "文件名"
查看linux服务器的文件系统的磁盘空间占用情况
df -h
显示内存状态
free -h
查找包含日志的目录
find / -name 'logs'
find / -name 'log'
在当前目录下查找今天之内有改动的文件
find /root -mtime 0
取出文件/etc/man.config中包含MANPATH的行,并把找到的关键字加上颜色
grep –color=auto ‘MANPATH’ /etc/man.config
把文件file1重命名为file2
mv file1 file2
把文件file1、file2、file3移动到目录dir中
mv file1 file2 file3 dir
强制删除目录dir中的所有文件
rm -fr dir
删除当前目录下111.txt文件
rm -f 111.txt
查看系统版本信息
uname -r
用于切换用户身份
su
更新软件包列表
apt-get update
清除终端屏幕
clear
安装 Docker ,curl命令行的意思是发起HTTP GET请求
apt-get install -y docker.io curl -s https://get.docker.com|sh
查看docker版本
docker version
启动docker
service docker start
第一个docker镜像
docker images
docker pull hello-world
第一个docker容器
docker run hello-world
官方下载Nginx并运行
docker pull nginx:latest
docker images
显示关于如何使用docker exec命令的详细说明
docker exec --help
创建挂载目录
mkdir -p /home/nginx/conf
mkdir -p /home/nginx/log
mkdir -p /home/nginx/html
cd /home/nginx
ll
生成容器
docker run --name nginx -p 9001:80 -d nginx
将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/
内存使用情况
free -h
docker中查看日志
docker logs --tail 100 -f <容器ID或容器名称>
–tail 100 参数表示只显示最新的 100 行日志。
-f 参数表示持续输出日志,即实时查看日志更新。
你需要将 <容器ID或容器名称> 替换为你要查看的容器的实际 ID 或者容器名称。
这个命令会输出容器日志的最新 100 行,并持续输出新的日志,直到你手动停止(Ctrl+C)为止