安装软件遇到的问题
- 相同软件不同版本软件的安装
- 相同的端口软件要安装多个(yum)
- 安装比较复杂软件的时候配置重复性的,浪费时间
- 软件的隔离问题怎么解决
- 虚拟机的隔离安全好,但是性能差
为什么docker容器
docker容器利用linux的systemd,cgroup等隔离技术,隔离用户,进程,文件系统,使得系统能安全稳定运行。
类似虚拟机,实际虚拟机
虚拟机性能会下降30%, 容器下降 3%,可以忽略不计。
docker原理
一、隔离原理
Docker主要就是借助 Linux 内核技术Namespace来做到隔离的,Linux Namespaces机制提供一种资源隔离方案。PID,IPC,Network等系统资源不再是全局性的,而是属于某个特定的Namespace。每个namespace下的资源对于其他namespace下的资源都是透明,不可见的。因此在操作系统层面上看,就会出现多个相同pid的进程。系统中可以同时存在两个进程号为0,1,2的进程,由于属于不同的namespace,所以它们之间并不冲突。而在用户层面上只能看到属于用户自己namespace下的资源,例如使用ps命令只能列出自己namespace下的进程。这样每个namespace看上去就像一个单独的Linux系统。
docker的版本
docker-ce
centos7下面默认按照的是docker13.0,此时还没区分docker-ce和docker-ee
一般来讲,我要按照docker-ce
安装
先安装阿里云的yum仓库
cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果有老版本的安装,卸载
yum -y remove docker
yum -y autoremove
现在安装docker-ce
yum -y install docker-ce
systemctl enable docker && systmectl start docker
( ubuntu: docker.io)
docker-ee
这个我们不用
docker网络
docker的使用
docker是通过预编译好的docker镜像来继续运行的。镜像在docker仓库里面,世界最大的docker仓库是hub.docker.com
一般国内下载镜像,需要把镜像源改成阿里的或者清华的。
查找镜像
docker search wordpress
安装数据库
8.0 docker run –name dkmysql -p 3308:3306 -e MYSQL_ROOT_PASSWORD=’1qaz!QAZ’ -d mysql
5.7 docker run –name dkmysql57 -p 3307:3306 -d -e MYSQL_ROOT_PASSWORD=’1qaz!QAZ’ -d mysql:5.7
通过docker inspect查看容器内部
[root@master ~]# docker inspect dkmysql |grep IPADDR
[root@master ~]# docker inspect dkmysql |grep IPAd
“SecondaryIPAddresses”: null,
“IPAddress”: “172.17.0.3”,
“IPAddress”: “172.17.0.3”,
[root@master ~]#
进入容器内部
docker exec -it
[root@master ~]# mysql -uroot -p’1qaz!QAZ’ -h172.17.0.3 <<EOF
create database wordpress charset utf8;
create user wordpress@’172.17.%’ identified by ‘123456’;
grant all privileges on wordpress.* to wordpress@’172.17.%’ ;
flush privileges;
EOF
`
最后编辑:严锋 更新时间:2025-05-09 15:48