Linux权限说明
执行Linux命令时,有时需要系统管理员权限,如果是root用户登录,那么已经具备管理员权限;如果非root用户登录,普通用户需要通过命令前加sudo来提高执行权限,前提是要通过sudo的配置文件/etc/sudoers来进行授权。sudo调用一次后就失去了root的权限,所以要使用root用户权限,必须每次都要加上sudo。
一、安装docker
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本 $ uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
$ sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置国内yum源
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
$ sudo yum list docker-ce --showduplicates | sort -r
7、安装docker,安装社区版本Docker软件
$ sudo yum install docker-ce docker-ce-cli containerd.io -y
8、启动并加入开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version
10、加速镜像配置
$ sudo vim /etc/docker/daemon.json { "registry-mirrors": ["https://jtxxvgoj.mirror.aliyuncs.com"] }
11、镜像加速修改后重启服务
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
12、查看docker服务信息
$ sudo docker info
常规使用
查看本地已有镜像
$ sudo docker images
镜像仓库中镜像查询,例如查询nginx
$ sudo docker search nginx
查询不方便也可到官网查询https://hub.docker.com/
拉取镜像到本地,例如nginx
$ sudo docker pull nginx
默认情况下拉取最新镜像,也可拉取指定版本,例如:
$ sudo docker pull nginx:alpine
创建并运行一个docker容器(只创建不运行,run改为create)
$ sudo docker run -itd --name nginx_test --net=host \
-p 8081:8081 -m 4096M \
-v /opt/host/nginx/html:/usr/share/nginx/html \
-v /opt/host/nginx/logs:/var/log/nginx \
-v /opt/host/nginx/nginx.conf:/etc/nginx/nginx.conf nginx
部分参数说明:
- --name 指定容器名称,该名称方便对容器识别和操作
- --net=host 一般不常用,表示容器使用宿主机器的网络
- -m 4096M 当需要限制容器使用内存大小时使用
- -v 存储或文件映射,冒号前的是宿主机目录,后面的是容器内部目录,一般用来存储需要保存的数据或读取外部配置文件
- 上面命令中的的反斜杠\是多行linux命令的拼接符号
查看已经启动的容器
$ sudo docker ps
查看镜像清单,包含启动的和未启动的
$ sudo docker ps -a
查看容器状态(可查看容器id、容器名称、CPU、内存)
$ docker stats 查看不是特别方便,可考虑使用ctop命令(下载并配置权限):
$ sudo wget https://github.com/bcicen/ctop/releases/download/0.7.6/ctop-0.7.6-linux-amd64 -O ctop
$ sudo mv ctop /usr/local/bin/
$ sudo chmod +x /usr/local/bin/ctop
$ ctop
进入容器(进入容器后可执行基本的linux命令)
$ sudo docker exec -it nginx_test bash
停止容器
$ sudo docker stop 容器id(容器名称)
$ sudo docker stop nginx_test
启动镜像
$ sudo docker start 容器id(容器名称)
查看容器启动日志,常用来查看启动异常情况
$ sudo docker logs 容器id(容器名称)
重启启动镜像
$ sudo docker restart 容器id(容器名称)
查看容器信息,例如端口,环境变量,网络,磁盘挂载等
$ sudo docker inspect 容器id(容器名称)
删除容器
$ sudo docker rm 容器id(容器名称)
删除本地镜像(删除前提是无容器依赖)
$ sudo docker rmi 镜像id(镜像名称)
容器开机自启动,之前创建容器时未配置可以通过更新命令进行调整
docker update --restart=always 容器id(容器名称)
同时此命令也可以改修改一些其他配置参数,例如内存限制
宿主机与容器间的数据拷贝
数据由宿主机拷贝到容器:
$ sudo docker cp 宿主机路径 容器id(容器名):容器路径
数据由容器拷贝到宿主机:
$ sudo docker cp 容器id(容器名):容器路径 宿主机路径
在使用docker时,经常需要在命令前加sudo,可以通过将普通用户加入docker用户组解决
$ sudo usermod -aG docker zhangsan
添加后需要重启docker服务,可能还需要用户退出ssh重新登录。
注意docker服务重启时,当前运行中的容器会关闭,设置了自动重启的容器会自动重启,没设置的容器关闭后不会重启。
$ sudo service docker restart
评论