1,docker安装
首先要有源,这里使用centos7的阿里源即可。
卸载掉docker-ce
rpm -qa | grep docker
rpm -e docker-ce-cli-19.03.12-3.el7.x86_64
然后安装
yum -y install docker
systemctl start docker
systemctl enable docker
2,镜像下载:
首先在阿里云注册一个账号,开通镜像加速器,获得一个加速地址。然后将这个地址配置到本地的/etc/docker/daemon.json下,这个地址是私有的,别人的自己不能用
[root@localhost ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://wyrsf017.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker
下载镜像之前需要登录
docker login --username=一梦浮生1987 registry.cn-hangzhou.aliyuncs.com
然后下载一个阿里的官方镜像,这里就下个centos7
docker pull centos:7
查看镜像:docker images
registry.cn-hangzhou.aliyuncs.com/moensun/centos7 latest 3db94df3e006 5 years ago 197 MB
给下载的镜像改个名字,方便使用
docker tag registry.cn-hangzhou.aliyuncs.com/moensun/centos7:latest centos7:latest
docker删除镜像:
docker rmi 镜像名称:版本号
docker rmi centos:v2
使用镜像创建一个容器
docker run -itd centos7:latest /bin/bash
-itd中的d,是让这个容器在后台运行。如果不加这个d,敲回车就直接进入到容器中了。
然后使用docker ps -a可以查看当前运行的容器
删除容器:
docker rm 62830e648fb1
进入容器:
[root@localhost ~]# docker exec -it 75234fc650ef /bin/bash
[root@75234fc650ef /]# hostname -I
172.17.0.2
[root@75234fc650ef /]#
此时的容器里面,就是最精简版本的centos7 了,命令极少,甚至连ifconfig都没有。我们需要使用的话,需要做很多配置。
3,docker容器网络配置
但是,用以上简单的方法创建的镜像,容器IP为172.0.0.2,无法与本机通信,所有无法配置yum。我们必须要手动设置一个与本机同一个网段的IP地址,才能够使docker容器与本机通信。
例如,本机的IP为:192.168.209.129
docker安装之后,默认的网络如下:
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
b574f380b321 bridge bridge local
c516a69e7dd3 host host local
ae7b0b2686a0 none null local
请使用以下命令,在宿主机上配置docker容器直接问公网:
brctl addbr br4
ifconfig br4 192.161.0.1 netmask 255.255.255.0
docker network create -d bridge -o "com.docker.network.bridge.default_bridge"=true -o "com.docker.network.bridge.enable_icc"=true -o "com.docker.network.bridge.enable_ip_masquerade"=true -o "com.docker.network.bridge.host_binding_ipv4"="0.0.0.0" -o "com.docker.network.bridge.name"="br4" -o "com.docker.network.driver.mtu"="1500" br10
docker run --name test1 --network br10 -itd centos7:latest /bin/bash
这段命令的意思是:在宿主机上创建一个名为br4的虚拟网卡,然后配置他的网段为192.161.0.1。然后配置docker容器的虚拟网卡 br10与br4互通,然后进入容器就可以ping的通baidu了
docker network ls
docker exec -it 85f7b63327d0 /bin/bash
4,容器打包上传到阿里云仓库
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
801953c100ac centos7:latest "/bin/bash" 13 minutes ago Up 13 minutes test1
[root@localhost ~]# docker commit test1 centos7:test2
sha256:b9fdf34737224a17cd9753614ab42744e7146edb1a60d5c9337011867932d788
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 test2 b9fdf3473722 4 seconds ago 210 MB
[root@localhost ~]# docker login --username=一梦浮生1987 registry.cn-hangzhou.aliyuncs.com
Password:
Login Succeeded
[root@localhost ~]# docker tag centos7:test2 registry.cn-hangzhou.aliyuncs.com/fenglei1987/ymfs:test2
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 test2 b9fdf3473722 About a minute ago 210 MB
registry.cn-hangzhou.aliyuncs.com/fenglei1987/ymfs test2 b9fdf3473722 About a minute ago 210 MB
[root@localhost ~]# docker push registry.cn-hangzhou.aliyuncs.com/fenglei1987/ymfs:test2
The push refers to a repository [registry.cn-hangzhou.aliyuncs.com/fenglei1987/ymfs]
5727902d3a3f: Pushed
2653d992f4ef: Pushed
test2: digest: sha256:84aa817e71576e4a445ba33c7d03b985715a390e9ae58287e2424559f33a56ef size: 738
上传完成之后,就能在阿里云上看到这个镜像了