Docker
什么是docker
docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任意流行的Linux机器上.也可以实现虚拟化,
安装docker
sudo yum install docker(centos系统) 或 sudo snap install docker 或 sudo apt-get install docker(Ubantu系统)
如果没有安装yum,可以通过sudo apt install yum 命令安装
如果是Ubantu系统将会提示下面信息,因为yum是centos系统中的命令.
没有已启用的仓库。
执行 "yum repolist all" 查看您拥有的仓库。
您可以用 yum-config-manager --enable <仓库名> 来启用仓库
以上安装后会出现docker之后,使用systemctl start docker 启动docker会报如下错误:
Failed to start docker.service: Unit docker.service not found.
最后使用sudo apt-get install -y docker.io 命令安装成功
systemctl start docker , 启动docker
docker version , 查看docker版本
docker search ubantu ,搜索Ubantu系统镜像
说明:如果不sudo就会报”Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission denied“的错误,原因是docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。
sudo docker images, 查看docker镜像
配置镜像加速器
1.sudo mkdir -p /etc/docker
2.sudo tee /etc/docker/daemon.json <<- 'EOF'
{
"registry-mirrors":["https://dcwzscc0.mirror.aliyuncs.com"]
}
EOF
3.sudo ststemctl daemon-reload
4.sudo systemctl restart docker
docker 基本使用
1.docker pull mysql:5.6
2.docker run -p 3307:3306 --name mymysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
参数说明:
docker run: 运行容器
--name : 容器的名字
-p :端口映射,将本机的3307端口映射到容器中3306端口
-v:挂存储卷,将容器中/var/lib/mysql目录映射到宿主机/home/mysql/data目录
-e:设置环境变量
docker ps : 查看运行起来的容器
docker ps -a : 查看所有状态的容器
docker exec -it 容器名或容器id /bin/bash : 进入容器
docker logs 容器名或容器id : 查看日志,也可以进入容器之后查看日志
docker version :查看docker版本
docker pull 镜像名:版本, 下载镜像
docker images 或 docker image ls 查看下载的镜像
docker rmi 镜像名 :删除镜像
docker stop 容器 : 停止容器
docker rm 容器 : 删除容器
docker login : 登录远程仓库
docker build -t aaa:1.0 -f /root/Dockerfile . : 构建镜像,最后的点一定要加上
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] : 创建标签
docker tag 54f5942bceac hell:1.0 : 修改ID为54f5942bceac镜像的REPOSITORY 和TAG
docker push 镜像:标签 : 推送到远端仓库
docker容器无法启动常见的原因
1、端口被占用,找到占用该端口的进程,并关闭该进程
2、缺少可执行文件,可以去docker正常安装的服务上面找到该文件,通过scp命令拷贝到/usr/bin目录下,问题得到解决