在Mac上使用Docker安装CentOS7.3
我需要在本地環境上安裝CentOS7作為開發環境,所以使用Docker來建立。據說Docker也在日常使用中變得更加易於上手和進步,這真是太好了。
■ 安装
下载
https://docs.docker.com/docker-for-mac/install/#download-docker-for-mac
打开DMG文件,将其复制到应用程序文件夹中。
点击Docker应用程序文件夹中的图标来启动。一个较小的窗口会弹出并等待一会儿。
当出现“Docker已经启动运行!”时,请在终端上使用以下命令确认。
$ docker --version
Docker version 17.03.1-ce, build c6d412e
好像不需要VirtualBox之类的东西。通过xhyve构建虚拟机。
顺便提一下,据说可以在这里创建虚拟机。
~/Library/Containers/com.docker.docker
■ 创造图像
在任意目录下放置Dockerfile。
mkdir -p /Users/miro/docker/cent72
cd /Users/miro/docker/cent72
vi Dockerfile
请查阅下文中提到的参考链接,以了解 Dockerfile 的示例内容。
建立形象
docker build -t miro/centos7:1.0 .
可以使用”-t”选项指定名称。上面的”:1.0″部分是标签。
确认构建是否成功。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
miro/centos7 1.0 3a6a024637ef About a minute ago 859 MB
centos centos7 a8493f5f50ff 4 weeks ago 192 MB
■ 启动容器
① 在主机端(Mac端)准备共享目录。
mkdir /Users/miro/docker/cent72/share
开始
docker run --privileged -it -d --name cent7test -v /Users/miro/docker/cent72/share:/docker-host/share miro/centos7:1.0 /sbin/init
使用“-v”选项,可以挂载主机上的共享目录。虽然不是必需的,但这样做会非常方便。
如果要进行端口转发,则可以指定类似于“-p 80:80”的参数。但由于本次没有安装Web服务器等,所以没有指定。
确认是否已启动。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3c8e288e9a0c miro/centos7:1.0 "/sbin/init" 6 seconds ago Up 9 seconds cent7test
连接到容器进行确认
$ docker exec -it cent7test bash
[root@3c8e288e9a0c /]# ← つながった
[root@3c8e288e9a0c /]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core) ← CentOS7.3 がインストールされている
[root@3c8e288e9a0c /]# ls -a /docker-host/share/
. .. ← ホスト側のディレクトがマウントされている
■ 查看、停止、删除容器
确实
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3c8e288e9a0c miro/centos7:1.0 "/sbin/init" About a minute ago Up About a minute cent7test
・停止 → 停下来、停下、停止运转
・起動 → 启动、发动、开始
docker stop cent7test ← コンテナ名、またはコンテナIDを指定
docker start cent7test ← 同上
・删除
docker rm cent7test ← 同上。停止している状態で削除すること
■ 确认和删除图像
确认
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
miro/centos7 1.0 3a6a024637ef 7 minutes ago 859 MB
centos centos7 a8493f5f50ff 4 weeks ago 192 MB
删除
docker rmi 3a6a024637ef ← イメージIDを指定
■ 参考资料:Dockerfile的示例
以下是一个Dockerfile,用于安装CentOS7操作系统和常用的开发工具集合。请根据需要自行添加或删除。
FROM centos:centos7
# Import the Centos-7 RPM GPG key to prevent warnings
RUN rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
RUN rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
# system update
RUN yum -y update && yum clean all
# set locale
RUN yum reinstall -y glibc-common && yum clean all
RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
RUN unlink /etc/localtime
RUN ln -s /usr/share/zoneinfo/Japan /etc/localtime
# ===============================================================================================================
# BASE packages
# ===============================================================================================================
RUN yum --enablerepo=extras clean metadata
RUN yum install -y zlib zlib-devel make gcc gcc-c++ openssl openssl-devel readline-devel pcre pcre-devel
RUN yum install -y openssh openssh-server
RUN yum install -y net-tools wget sudo
RUN yum install -y tar zip unzip bzip2 which tree
RUN yum install -y git