mac 安装 docker

使用 Homebrew 安装

macOS 我们可以使用 Homebrew 来安装 Docker。

Homebrew 的 Cask 已经支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装:

$ brew cask install docker

==> Creating Caskroom at /usr/local/Caskroom
==> We'll set permissions properly so we won't need sudo in the future
Password:          # 输入 macOS 密码
==> Satisfying dependencies
==> Downloading https://download.docker.com/mac/stable/21090/Docker.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask docker
==> Installing Cask docker
==> Moving App 'Docker.app' to '/Applications/Docker.app'.
🍺  docker was successfully installed!

在载入 Docker app 后,点击 Next,可能会询问你的 macOS 登陆密码,你输入即可。之后会弹出一个 Docker 运行的提示窗口,状态栏上也有有个小鲸鱼的图标()。

启动终端后,通过命令可以检查安装后的 Docker 版本。

$ docker --version
Docker version 17.09.1-ce, build 19e2cf6

镜像加速

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com

在任务栏点击 Docker for mac 应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中填写加速器地址即可。修改完成之后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了。


官方文档

https://docs.docker.com/docker-for-mac/

探索应用程序

  1. 打开一个命令行终端,通过运行简单的Docker镜像hello-world来测试你的安装是否工作正常

    $ docker run hello-world
    
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    ca4f61b1923c: Pull complete
    Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
    Status: Downloaded newer image for hello-world:latest
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    ...
    
  2. 启动Dockerized Web服务器。就像上面的hello-world图片一样,如果图片不是在本地找到的,Docker会将其从Docker Hub中提取出来。

    $ docker run -d -p 80:80 --name webserver nginx
    
  3. 在Web浏览器中,转到http://localhost/查看nginx主页。因为我们指定了默认的HTTP端口,所以不需要:80在URL的末尾追加

    mac 安装 docker_第1张图片

    早期测试版本用作docker主机名来构建URL。现在,端口暴露在虚拟机的私有IP地址上,并转发到localhost其他主机名称。

  4. 在Web服务器运行时(docker container ls或使用docker ps查看容器上的详细信息

    $ docker container ls
    CONTAINER ID   IMAGE   COMMAND                  CREATED              STATUS              PORTS                         NAMES
    56f433965490   nginx   "nginx -g 'daemon off"   About a minute ago   Up About a minute   0.0.0.0:80->80/tcp, 443/tcp   webserver
    
  5. 使用以下命令停止并移除容器和图像。使用“全部”标志(--all-a)查看停止的容器。

    $ docker container ls        //列出运行的容器
    $ docker container stop webserver     //停止容器按照容器名称
    $ docker container ls -a           
    $ docker container rm webserver        //删除容器
    $ docker image ls      //列出所有镜像
    $ docker image rm nginx     //删除镜像

$ docker search 镜像名称 //搜索镜像

$ docker pull 镜像名称 //下载镜像

$ docker inspect 镜像名称 //查看详细的容器信息

        # 列出本机所有容器,包括终止运行的容器
       $ docker container ls --all

(1)docker container start

前面的docker container run命令是新建容器,每运行一次,就会新建一个容器。同样的命令运行两次,就会生成两个一模一样的容器文件。如果希望重复使用容器,就要使用docker container start命令,它用来启动已经生成、已经停止运行的容器文件。


$ docker container start [containerID]

(2)docker container stop

前面的docker container kill命令终止容器运行,相当于向容器里面的主进程发出 SIGKILL 信号。而docker container stop命令也是用来终止容器运行,相当于向容器里面的主进程发出 SIGTERM 信号,然后过一段时间再发出 SIGKILL 信号。


$ bash container stop [containerID]

这两个信号的差别是,应用程序收到 SIGTERM 信号以后,可以自行进行收尾清理工作,但也可以不理会这个信号。如果收到 SIGKILL 信号,就会强行立即终止,那些正在进行中的操作会全部丢失。

(3)docker container logs

docker container logs命令用来查看 docker 容器的输出,即容器里面 Shell 的标准输出。如果docker run命令运行容器的时候,没有使用-it参数,就要用这个命令查看输出。


$ docker container logs [containerID]

(4)docker container exec

docker container exec命令用于进入一个正在运行的 docker 容器。如果docker run命令运行容器的时候,没有使用-it参数,就要用这个命令进入容器。一旦进入了容器,就可以在容器的 Shell 执行命令了。


$ docker container exec -it [containerID] /bin/bash

(5)docker container cp

docker container cp命令用于从正在运行的 Docker 容器里面,将文件拷贝到本机。下面是拷贝到当前目录的写法。


$ docker container cp [containID]:[/path/to/file] .

Docker 需要用户具有 sudo 权限,为了避免每次命令都输入sudo,可以把用户加入 Docker 用户组(官方文档)。


$ sudo usermod -aG docker $USER

Docker 是服务器----客户端架构。命令行运行docker命令的时候,需要本机有 Docker 服务。如果这项服务没有启动,可以用下面的命令启动。


# service 命令的用法
$ sudo service docker start

# systemctl 命令的用法
$ sudo systemctl start docker

对于那些不会自动终止的容器,必须使用docker container kill 命令手动终止。


$ docker container kill [containID]


你可能感兴趣的:(java,docker,mac)