docker其实就是一个进程,以进程的方式直接运行
大约在0.6版,privileged被引入docker。
使用该参数,container内的root拥有真正的root权限。
否则,container内的root只是外部的一个普通用户权限。
privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。
甚至允许你在docker容器中启动docker容器。
docker安装
# step 1: 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
yum makecache fast
yum -y install docker-ce
# Step 4: 开启Docker服务
service docker start
docker更改用户名
hostnamectl set-hostname 新用户名
systemctl enable docker.service 开机自启
报错解决
cd /etc/yum.repos.d/
rm -rf mirrors.aliyun.com_docker-.repo
基本命令
docker version (查看版本)
Client: Docker Engine - Community
Version: 19.03.1
API version: 1.40
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:21:07 2019
OS/Arch: linux/amd64
Experimental: false
配置docker镜像加速(pull image 更快)
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://mb8n4btz.mirror.aliyuncs.com"]
}
搜索、获取官方仓库镜像
docker search centos(搜索centos镜像)
docker pull centos (拉取镜像到本地)
docker image ls (查看本地镜像列表)
导出、导入镜像
docker commit ansible centos7-ssh(ansible(容器名)当前的状态做成镜像并命名为centos7-ssh)
docker image save centos7-ssh > centos7-ssh.tar.gz(导出)
docker image load -i centos7-ssh.tar.gz(导入)
docker tag centos7-ssh:latest centos7:latest(镜像重命名)
docker rmi centos7-ssh(删除镜像)
创建,启动容器
docker run -it --name ansible centos7 /bin/bash 创建一个容器并给出终端,容器名ansible,使用镜像centos7,启动时调用/bin/bash
在docker终端中使用exit,用该方法创建的容器会停止使用
docker ps 查看运行中的容器
docker ps -a 查看所有容器
docker run -d -p 8500:22 --name ansible centos7 /init.sh 容器在后台一直运行,使用exit不会退出,使用docker stop ansible停止运行,-p物理机端口:容器端口
docker inspect ansible查看ansible的ip,使用ssh的方法连接.
在init.sh中
#!/bin/bash
/usr/sbin/sshd -D
确保sshd在上述目录中
docker start ansible启动容器
docker exec -it ansible /bin/bash 进入容器,ansible为容器名字,也可以为容器ID号
docker rm ansible 删除容器 -f 强制
删除所有的容器
docker rm $(docker ps -aq)
删除所有的镜像
docker rmi $(docker images -q)