docker(杂记)
Posted stray
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker(杂记)相关的知识,希望对你有一定的参考价值。
参考链接:http://www.dockerinfo.net/doc...
docker是一种容器技术
容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。
开发在自己机器上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或者公有云主机上运行。
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。
Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。
容器不需要虚拟硬件,也不需要完整操作系统。多个容器共享宿主机的内核。
docker的特点:轻量级、可移植、资源占用少
对于开发人员:Build Once, Run Anywhere
对于运维人员:Configure Once,Run Anything
一、更新yum源
1、首先备份系统自带yum源配置文件/etc/yum.repos.d/CentOS-Base.repo
[root@localhost ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、进入yum源配置文件所在的文件夹
[root@localhost ~]# cd /etc/yum.repos.d/
3、下载163的yum源配置文件到上面那个文件夹内
[root@localhost yum.repos.d]# wget http://mirrors.163.com/.help/...
4、运行yum makecache生成缓存
[root@localhost yum.repos.d]# yum makecache
5、这时候再更新系统就会看到以下mirrors.163.com信息
[root@localhost yum.repos.d]# yum -y update
二、安装docker
1、yum源更新
yum update
2、卸载旧版本(如果安装过旧版本的话)
yum remove docker docker-common docker-selinux docker-engine
3、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
4、设置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/doc...
5、可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
6、安装docker
yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce
7、启动并加入开机启动
systemctl start docker
systemctl enable docker
8、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
三、设置阿里云源
登录阿里云,选择镜像加速器,按照不同的操作系统来进行配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-\'EOF\'
{
"registry-mirrors": ["https://*****.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
四、docker使用
1、拉取镜像
docker pull mysql:5.6
2、运行mysql
docker run -p 3306:3306 --name mymysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
3、通过 docker ps 命令查看是否安装成功
4、启动容器:docker start 容器ID
5、进入mysql容器:docker exec -it 064c6bea326d /bin/bash
6、执行命令mysql -h localhost -u root -p,提示输入密码,输入123456,就可以进行相关数据库操作
安装nginx
docker pull nginx
docker run --name nginx-test -p 80:80 -d nginx
run 创建容器实例
-- name 容器命名
-v 映射目录
-d 设置容器后台运行
-p 本机端口映射 将容器的80端口映射到本机的80端口
语句最后一个nginx是使用镜像的名称
创建一些关键目录:
mkdir -p /root/nginx/www /root/nginx/logs /root/nginx/conf
将nginx-test容器配置文件copy到本地
docker cp 481e121fb29f:/etc/nginx/nginx.conf /root/nginx/conf
创建新nginx容器nginx-web,并将**www,logs,conf**目录映射到本地
docker run -d -p 80:80 --name nginx-web -v /root/nginx/www:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs:/var/log/nginx nginx
启动nginx-web
docker start nginx-web
4、基本使用
版本查看:docker version
镜像拉取:docker pull
镜像查询:docker image
镜像删除:docker rmi nginx
容器运行:docker run
端口映射:docker run -p 3306:3306
挂存储卷:docker run -v
进入容器:docker exec it container_id /bin/bash
查看容器日志:(1)进入容器查看(2)退出容器查看docker logs -f container_id
查询容器:docker ps(运行中的容器) ,docker ps -a(所有的容器)
设置环境变量:设置启动的变量,如设置mysql root的密码
查询环境变量,可以在docker_hub上查询说明
容器停止:docker stop container_id
容器删除:docker rm container_id
仓库登录:docker login
镜像构建:docker build -t lala:1.0 -f /root/Dockerfile
镜像打tag:docker tag mysql:5.6 myregistry(镜像仓库的名字)/mysql:1.0
镜像推送:docker push myregistry(镜像仓库的名字)/mysql:1.0
5、dockerfile语法
FROM、RUN、 CMD/ENRTYPOINT、 EXPOSE
FROM:基础镜像
RUN:命令
ADD:拷贝文件
WORKDIR:设置工作目录
CMD:运行工作目录下的程序
EXPOSE:端口暴露5000
以上是关于docker(杂记)的主要内容,如果未能解决你的问题,请参考以下文章
Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段