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
 

上传完成之后,就能在阿里云上看到这个镜像了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐