标签 docker 下的文章

使用加速器可以提升获取Docker官方镜像的速度

centos7环境下的安装和配置

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start

注意:其他注意事项在下面的注释中
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
# 注意:在某些版本之后,docker-ce安装出现了其他依赖包,如果安装失败的话请关注错误信息。例如 docker-ce 17.03 之后,需要先安装 docker-ce-selinux。
# yum list docker-ce-selinux- --showduplicates | sort -r
# sudo yum -y install docker-ce-selinux-[VERSION]

# 通过经典网络、VPC网络内网安装时,用以下命令替换Step 2中的命令
# 经典网络:
# sudo yum-config-manager --add-repo http://mirrors.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
# VPC网络:
# sudo yum-config-manager --add-repo http://mirrors.could.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo


# 配置部分
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://dr8gnq1l.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

其他环境根据参考链接进行即可

参考链接: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors?accounttraceid=7671094930d141cdbee604914069e21araif

先理解下概念

dockerfile用途是用于执行build生成镜像分支, 在依据这个镜像分支去运行多个镜像

下面以mysql举例

1. 拉取mysql镜像
docker pull mysql
2. 查看mysql
docker images |grep mysql
3.查看本地镜像: (参数-a 表示所有)
docker images -a 
  • 先创建一个Dockerfile文件
FROM mysql
EXPOSE 3306
ENV MYSQL_ROOT_PASSWORD 12345
  • 执行build命令
# 注意最后一个.不能少, 这个表示当前路径
[root@localhost mysql]# docker build -t mysql2:Dockerfile .
Sending build context to Docker daemon  2.048kB
Step 1/3 : FROM mysql
 ---> be0dbf01a0f3
Step 2/3 : EXPOSE 3306
 ---> Running in 8f2ae74e3aae
Removing intermediate container 8f2ae74e3aae
 ---> 2a6324549f86
Step 3/3 : ENV MYSQL_ROOT_PASSWORD 12345
 ---> Running in 1c61b6fd498b
Removing intermediate container 1c61b6fd498b
 ---> ec33c8026d5c
Successfully built ec33c8026d5c
Successfully tagged mysql2:Dockerfile
  • 查询当前镜像, 这个mysql2就是以我们的配置构建的镜像分支
[root@localhost mysql]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
mysql2              Dockerfile          ec33c8026d5c        About a minute ago   541MB
mysql               latest              be0dbf01a0f3        3 weeks ago          541MB
  • 执行容器
docker run -p 3306:3306 --name my_mysql2 -e -d mysql2:Dockerfile --default-authentication-plugin=mysql_native_password

说明: --default-authentication-plugin=mysql_native_password 
这个配置的添加是为了保证启动好的mysql能通过sqlyog访问, 使用使用兼容的加密方式

这个方案并不好, 很傻, 主要是为了帮助理解dockerfile的简单的使用示例用途