介绍
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker组成部分
目标
- 在CentOS7中配置docker;
- 熟悉docker的基础使用;
安装依赖包;
# yum 包更新到最新
sudo yum update
#软件包yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
删除旧版
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装Docker
1. 设置yum源
# 1.1、方案一:使用ustc的(推荐)
sudo yum-config-manager --add-repo http://mirrors.ustc.edu.cn/docker-
ce/linux/centos/docker-ce.repo
# 1.2、方案二:使用阿里云(可能失败)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-
ce/linux/centos/docker-ce.repo
2. 安装Docker
yum install docker-ce docker-ce-cli containerd.io
3. 启动命令操作
systemctl status docker (查看服务当前状态)
systemctl start docker (启动docker服务)
systemctl stop docker (定制docker服务)
systemctl restart docker(重启docker服务)
systemctl enable docker (开机自启动)
docker update --restart=always <CONTAINER ID> (容器设置开机启动)
4. 查看启动状态systemctl status docker
5. 查看版本信息docker version
6、查看docker版本docker -v
Docker启动错误处理
1. 错误1
[root@localhost docker]# sudo systemctl start docker
Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details.
To force a start use "systemctl reset-failed docker.service" followed by "systemctl start docker.service" again.
错误1解决:
# daemon.json 改为 daemon.conf
mv /etc/docker/daemon.json /etc/docker/daemon.conf
重新执行命令
systemctl status docker (查看服务当前状态)
systemctl start docker (启动docker服务)
systemctl stop docker (定制docker服务)
systemctl restart docker(重启docker服务)
2. 错误2
docker容器启动成功,端口已映射,外部网站依旧无法访问
错误1解决:原因-内部外部网络不通,网络模式不同
2.1方案一:
#编辑 sysctl.conf
vi /etc/sysctl.conf
#在上述打开的文件中后面添加
net.ipv4.ip_forward=1
#重启network
systemctl restart network
#打印查看
sysctl net.ipv4.ip_forward
#是否相应
net.ipv4.ip_forward = 1
2.2方案一:
docker启动时,因net模式没指定,导致容器和镜像即使启动成功依然无法访问。
#科普:使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式
#Docker有以下4种网络模式:
· host模式,使用--net=host指定。
· container模式,使用--net=container:NAME_or_ID指定。
· none模式,使用--net=none指定。
· bridge模式,使用--net=bridge指定,默认设置。
#解决方案 指定 --net="host"
docker run -di --net="host" --name=tomcat -p 8080:8080 tomcat
访问测试
http://192.168.157.110:8080/
http://172.17.0.1:8080/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。