步骤
- Ubantu创建root用户
- 查看Ubantu系统信息
- Ubantu更新源列表
- Ubantu安装net-tools
- 安装Docker
- 安装Openssh
- 安装Docker-Compose
- 拉取镜像,在Docker中安装mysql、nginx、redis、mqtt等
Ubantu创建root用户
-
输入命令:
sudo passwd root
,回车。 -
[sudo] password for 当前用户
:输入当前用户的密码。 -
Enter new UNIX password
:输入root用户密码。 -
Retype new UNIX password
:再次输入root用户密码。 -
输入命令:
su
,回车。 -
输入root用户的密码,切换成功。
查看Ubantu系统信息
-
查看ubantu系统是32位还是64位:
getconf LONG_BIT
-
查看系统信息:
lsb_release -a
-
查看操作系统架构:
uname -a
Ubantu更新源列表
-
更新源列表
-
root用户:`apt-get update`
-
非root用户:`sudo apt-get update`
-
Ubantu安装net-tools
-
输入命令:
ifconfig
,回车,出现Command 'ifconfig' not found,but can be installed weith:sudo apt install net-tools
。 -
安装net-tools
-
root用户:
apt install net-tools
-
非root用户:
sudo apt install net-tools
-
-
安装ping相关工具:
apt install iputils-ping -
安装vim编辑器:apt install vim
-
安装curl:apt install curl
Ubantu安装openssh
-
想登陆别的机器的SSH只需要安装openssh-client。
-
本机开放SSH服务需要安装openssh-server。
-
安装openssh,可以远程连接服务器。
-
查看当前的ubantu是否安装ssh-server服务:
dpkg -l | grep ssh
,默认只安装ssh-client服务。 -
root用户安装openssh-server服务:
apt-get install openssh-server
-
root用户确认ssh-server是否启动:
ps -e | grep ssh
,如果看到sshd,说明ssh-server已经启动。 -
启动ssh-server:
sudo /etc/init.d/ssh start
或者sudo service ssh start
-
ssh-server的配置文件位于
/etc/ssh/sshd_config
。 -
停止ssh-server服务:
sudo /etc/init.d/ssh stop
安装Docker
参考博文:https://www.cnblogs.com/blog-rui/p/11244023.html
安装步骤
- 使用国内仓库官方安装脚本自动安装:curl -sSL https://get.daocloud.io/docker | sh
命令
-
卸载Docker:
sudo apt-get purge docker-ce
-
删除镜像、容器、配置文件:
sudo rm -rf /var/lib/docker
,这是镜像和容器的默认存储位置。 -
重新启动已经停止的容器:
-
根据名字启动容器:
sudo docker start 容器名
-
根据id启动容器:
sudo docker start 容器id
-
根据名字重启容器:
sudo docker restart 容器名
-
-
停止容器:
sudo docker stop 容器名
-
查看容器日志:
-
查看全部日志:
sudo docker logs 容器名
-
查看实时日志:
sudo docker logs -f 容器名
-
为每条位置加上时间戳:
sudo docker logs -ft 容器名
-
-
容器命名:
sudo docker run --name 容器名 ubantu
-
启动docker:
sudo service docker start
-
停止docker:
sudo service docker stop
-
重启docker:
sudo service docker restart
-
列出镜像:
docker images
-
搜索镜像:
docker search 镜像名
-
删除镜像:
docker image rm 镜像名或镜像id
-
拉取镜像:
docker pull 镜像名
-
将容器保存为镜像:
docker commit 容器名 镜像名
-
停止一个已经在运行状态的容器:
docker container stop 容器名或容器id
-
启动一个已经停止的容器:
docker container start 容器名或容器id
-
kill掉一个已经在运行状态的容器:
docker container kill 容器名或容器id
-
查看容器的信息:
docker inspect 容器id
-
指定容器名删除容器:
docker rm 容器名
-
创建容器:
docker run [option] 镜像名 [向启动容器中传入的命令]
-
-i:表示以“交互模式”运行容器。
-
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即 分配一个伪终端。
-
--name:为创建的容器命名。
-
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。
-
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不 会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。
-
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射
-
-e:为容器设置环境变量。
-
--network=host:表示将主机的网络环境映射到容器中,容器的网络与主机相同。
-
-
添加docker用户组:
sudo groupadd docker
,docker在安装时,已经创建了docker用户组。 -
将指定用户添加进docker用户组,使得指定用户操作docker时,不需要添加sudo,
sudo usermod -aG docker 指定用户名
-
设置docker服务开启启动:
sudo systemctl start docker
安装Docker-Compose
安装步骤
- 下载docker-compose,要安装其他版本,可替换1.27.4。
curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
- 将可执行权限应用于二进制文件:chmod +x /usr/local/bin/docker-compose
Docker安装mysql
安装步骤
- 搜索镜像:docker search mysq:5.7.25
- 拉取镜像:docker pull mysq:5.7.25
- 创建容器:
docker run -d -v /data/data:/var/lib/mysql --privileged --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=密码 --restart=always mysql:5.7.25
mysql不能远程连接
- 进入MySQL的docker容器bash:docker exec -it mysql bash
- 退出bash并在后台运行容器:ctrl+p+q
- 进入MySQL命令行:mysql -u root -p,回车,输入密码。
- 输入命令:
- use mysql;
- 修改host值,以通配符%的内容增加主机/IP地址:update user set host='%' where user='root';
- flush privileges;
- select host,user from user where user='root';
- quit;
mysql5.7忘记密码
- 进入容器:docker exec -it mysql bash
- 设置跳过权限表的加载:echo "skip-grant-tables" >> /etc/mysql/conf.d/docker.cnf
- 退出容器:exit
- 重启容器:docker restart mysql
- 进入容器:docker exec -it mysql bash
- 登录mysql:mysql -uroot
- 更新权限:flush privileges;
- 修改密码:alter user 'root'@'%' identified by '密码'
- 退出mysql:exit
- 替换刚刚加的跳过权限表的加载参数:sed -i "s/skip-grant-tables/ /" /etc/mysql/conf.d/docker.cnf
- 退出容器:exit
- 重启容器:docker restart mysql
Docker安装Redis
- 拉取镜像:docker pull redis:latest
- 创建容器:
docker run -d --name redis -p 6679:6379 -v /data/redis/redis.conf:/etc/redis/redis.conf redis --requirepass "密码"
Docker安装可视化工具
安装步骤
- 拉取镜像:docker pull portainer/portainer:latest
- 创建容器:
- 本机模式:
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart=always --name prtainer portainer/portainer
- 远程模式:
docker run -d -p 9000:9000 --restart=always --name prtainer portainer/portainer
- 本机模式:
访问Portainer容器
- 访问Portainer容器:http://IP:9000
- 首次登录,需要设置admin的密码,密码设置为admin123
- 选择docker连接
- 选择Local,代表本地模式,Portainer仅管理本机的docker容器。
- 选择Remote,代表远程模式,名称随意设置,在Endpoint URL中填写docker节点的地址:docker远程端口
Docker安装Nginx
- 拉取镜像:docker pull nginx:latest
- 在主机创建挂载目录:
- mkdir /data/nginx/conf
- mkdir /data/nginx/html
- mkdir /data/nginx/logs
- 在文件夹/data/nginx/conf下,新建nginx.conf文件
# 设置nginx服务的系统使用用户 user root; # 工作进程数 worker_processes 1; # nginx的错误日志 error_log /var/log/nginx/error.log warn; # nginx启动时的pid pid /var/run/nginx.pid; events { # 每个进程允许的最大连接数 worker_connections 1024; } # http请求配置,一个http可以包含多个server http { include /etc/nginx/mime.types; default_type application/octet-stream; # 日志格式,此处的main,与access_log中的main对应 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # 访问日志,后面的main,表示使用log_format中的main格式,记录到access.log中 access_log /var/log/nginx/access.log main; # 高效率文件传输 sendfile on; #tcp_nopush on; # 客户端与服务端的超时时间,单位秒 keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; # http服务,一个server可以配置多个location server { # 服务监听端口 listen 80 default_server; server_name default_server; # 页面存放目录 root /usr/share/nginx/html; # 定义变量 set $root /home; location / { # 默认页面 index index.html index.htm; } } }
- 运行容器并把nginx容器的配置文件挂载到主机
docker run --name nginx -p 8080:80 --restart=always --privileged=true -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/html:/etc/nginx/html -v /data/nginx/logs:/var/log/nginx -d nginx
- 查看已启动的容器
- 打开浏览器访问主机IP加设置的端口
查看docker-compose发送代码的端口
- cat /lib/systemd/system/docker.service
Ubantu系统端口占用问题
- 登录ubantu系统,进入终端命令行模式。
- 输入命令切换到root用户:su root
- 查找被占用的端口
- 查看所有端口的使用情况:netstat -tln
- 查看知道端口的使用情况:netstat -tln | grep 指定端口
- 查看端口被哪个进程占用:lsof -i :指定端口
- 根据进程号输入命令,杀掉占用指定端口的进程:kill -9 进程号