Centos 安装docker
1、更新update到最新的版本
yum update
2、卸载老版本docker
yum remove docker docker-common docker-selinux docker-engine
3、安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
4、设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5、查看docker版本
yum list docker-ce --showduplicates|sort -r
6、安装docker
yum install docker-ce-18.03.1.ce -y
7、启动docker
systemctl start docker
8、加入开机自启
systemctl enable docker
9、配置国内镜像
vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
docker快速入门
docker启动容器 docker start 容器ID
docker删除 docker rm 容器ID
docker启动所有容器 docker start $(docker ps -a -q)
docker停止所有容器 docker stop $(docker ps -a -q)
docker删除所有容器 docker rm $(docker ps -a -q)
创建dockerfile
FROM centos:latest
RUN groupadd -r redis && useradd -r -g redis redis
RUN yum -y update && yum -y install epel-release && yum -y install redis && yum -y install net-tools
EXPOSE 6379
把该文件放在linux服务器上,创建文件夹/usr/docker/redis,放在该目录下
在dockerfile目录 执行下面代码,注意后面上下文点号
docker build -t redis-test .
创建完成后可以docker images
查看生成的镜像
容器网络
Docker安装后,默认会创建下面三种网络类型
docker network ls
查看默认的网络
NETWORK ID NAME DRIVER SCOPE
36d9a43651f3 bridge bridge local
d2a9464fcf02 host host local
29c43f231e80 none null local
在启动容器时使用 --network bridge
指定网络类型
bridge
:桥接网络
默认情况下启动的Docker容器,都是使用 bridge,Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,这个就导致重启下,Docker的IP地址就变了
none
:无指定网络
使用 --network=none ,docker 容器就不会分配局域网的IP
host
: 主机网络
使用 --network=host,此时,Docker 容器的网络会附属在主机上,两者是互通的。
例如,在容器中运行一个Web服务,监听8080端口,则主机的8080端口就会自动映射到容器中
指定自定义网络
因为默认的网络不能制定固定的地址,所以我们将创建自定义网络,并指定网段:172.10.0.0/16 并命名为mynetwork,指令如下:
docker network create --subnet=172.10.0.0/16 mynetwork
创建容器
接下来使用此docker镜像 创建容器
代码如下:
docker run -itd --name redis-master --net mynetwork -p 6380:6379 --ip 172.10.0.2 redis
docker run -itd --name redis-slave --net mynetwork -p 6381:6379 --ip 172.10.0.3 redis
参数说明:
具体可以参看一些文档
http://www.runoob.com/docker/docker-run-command.html
http://www.dockerinfo.net/docker容器-2
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--ip: 为容器制定一个固定的ip
--net: 指定网络模式
这样,我们创建了2个容器,来一起查看下结果
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0083e4c571c9 redis "/bin/bash" 2 weeks ago Up 25 hours 0.0.0.0:6381->6379/tcp redis-slave
b11ebf10e330 redis "/bin/bash" 2 weeks ago Up 25 hours 0.0.0.0:6380->6379/tcp redis-master