安装软件遇到的问题

  • 相同软件不同版本软件的安装
  • 相同的端口软件要安装多个(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

`

作者:严锋  创建时间:2023-09-20 16:34
最后编辑:严锋  更新时间:2025-05-09 15:48