- 2024-11-22 10:19:15
- 6011 热度
- 0 评论
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
sudo uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
sudo yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
国外镜像一般很难访问,建议配置阿里云镜像。
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
sudo yum list docker-ce --showduplicates | sort -r
7、安装docker
sudo yum install docker-ce sudo yum install docker-ce-17.12.0.ce
8、启动并加入开机启动
sudo systemctl start docker sudo systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
sudo docker version
10、镜像加速器,使用加速器可以提升获取Docker官方镜像的速度
登录阿里官方,产品与服务里面搜索“容器镜像服务”,镜像工具中有镜像加速器,每个人的地址是不一样的。
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://cg9lnh5n.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
11、取最新版的 Nginx 镜像
docker pull nginx:latest
12、使用以下命令来查看是否已安装了 nginx
docker images
13、安装完成后,我们可以使用以下命令来运行 nginx 容器
docker run --name nginx-test -p 8080:80 -d nginx
--name nginx-test:容器名称。
-p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
-d nginx: 设置容器在在后台一直运行。
14、最后我们可以通过浏览器可以直接访问 8080 端口的 nginx 服务。
注意开放服务器8080端口的访问,比如阿里云主机要在安全组中设置端口放行。
15、停止Nginx
docker kill -s KILL nginx-test
16、卸载一个镜像
docker rmi nginx # 根据 REPOSITORY 来删除镜像 docker rmi nginx:latest # 根据 REPOSITORY:TAG 来删除镜像 docker rmi 4f380adfc10f # 根据 IMAGE ID 来删除镜像,同时会删除所有该镜像的TAG镜像 docker rmi $(docker images -q) #删除所有镜像
17、docker删除镜像Error response from daemon: conflict: unable to remove repository reference
Docker无法删除images,由于是依赖container。
列出所有运行或没有运行的镜像
docker ps -a
删除container,这样才能够删除其中的images,以下命令删除所有
docker rm $(docker ps -a -q)
END
- Spring(403)
- Boot(208)
- Spring Boot(187)
- Java(82)
- Cloud(82)
- Spring Cloud(82)
- Security(60)
- Spring Security(54)
- Boot2(51)
- Spring Boot2(51)
- Redis(31)
- SQL(29)
- Mysql(25)
- IDE(24)
- Dalston(24)
- JDBC(22)
- IDEA(22)
- mongoDB(22)
- MVC(22)
- Web(21)
- CLI(20)
- Alibaba(19)
- SpringMVC(19)
- SpringBoot(17)
- Docker(17)
- Git(16)
- Eclipse(16)
- Vue(16)
- ORA(15)
- JPA(15)
- Apache(15)
- Mybatis(14)
- Oracle(14)
- jdk(14)
- Tomcat(14)
- Linux(14)
- HTTP(14)
- XML(13)
- JdbcTemplate(13)
- OAuth(13)
- Nacos(13)
- Pro(13)
- Data(12)
- JSON(12)
- OAuth2(12)
- stream(11)
- int(11)
- Myeclipse(11)
- not(10)
- Bug(10)
- maven(9)
- Map(9)
- Hystrix(9)
- ast(9)
- APP(8)
- Bit(8)
- API(8)
- session(8)
- Window(8)
- Swagger(8)
- Github(7)
- JavaMail(7)
- Cache(7)
- File(7)
- mail(7)
- IntelliJ(7)
- windows(7)
- too(7)
- HTML(7)
- RabbitMQ(6)
- star(6)
- and(6)
- Excel(6)
- Log4J(6)
- pushlet(6)
- apt(6)
- read(6)
- Freemarker(6)
- WebFlux(6)
- JSP(6)
- Bean(6)
- error(6)
- nginx(6)
- Server(6)
- ueditor(6)
- jar(6)
- ehcache(6)
- UDP(6)
- rdquo(5)
- PHP(5)
- Struts(5)
- string(5)
- Syntaxhighlighter(5)
- script(5)
- Tool(5)
- Controller(5)
- swagger2(5)
- ldquo(5)
- input(5)
- Servlet(5)