Docker 介绍
1. 为什么要用docker?
对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。
有时候环境真的很难搭,网络原因,之前的包原因,各种版本的不兼容原因
2. dockerfile 的配置
# 定制的镜像都是基于 FROM 的镜像
FROM ruby:2.5.1-alpine3.7
# throw errors if Gemfile has been modified since Gemfile.lock
RUN bundle config mirror.https://rubygems.org https://gems.ruby-china.com
# 改 apk 的镜像源
RUN echo 'http://mirrors.aliyun.com/alpine/edge/community' >> /etc/apk/repositories
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 安装一些要用到的系统包
RUN apk add --no-cache --virtual build-deps build-base postgresql-dev
WORKDIR /usr/src/app
COPY . .
RUN bundle install
查看容器列表
docker ps -a
通过容器 id 删除容器
docker rm container
查看镜像列表
docker images
通过镜像 id 删除镜像
docker rmi image
运行并进入容器
docker run -it my_demo /bin/sh
进入容器
docker exec -it my_demo /bin/sh
打包镜像
docker build -t my_rails:latest .
运行容器
docker run --name my_rails -i -t -p 3000:3000 --network host -v ~/Documents/:/var/www my_rails:latest /bin/sh
-v ~/webs/:/var/www,这个参数的作用是将外部的文件夹~/webs映射到容器内/var/www中,在容器内可以共享外面的文件(代码)了。
3. 招内 docker
FROM ruby:2.1.4
RUN bundle config mirror.https://rubygems.org https://gems.ruby-china.com
EXPOSE 3000
EXPOSE 3306
WORKDIR /usr/src/app
COPY . .
RUN gem install highline -v '1.6.21'
RUN bundle
docker build -t bid-ms:latest .
docker run --name bid-ms -i -t -p 3000:3000 --network host -v ~/Documents/:/var/www bid-ms:latest /bin/bash
mac
链接本地的服务
localhost => host.docker.internal
linux
链接本地的服务 127.0.0.1
4. 想搜索一下有哪些 tags
这是 shell 脚本:
#!/bin/bash
if [ $# -lt 1 ]
then
cat << HELP
dockertags -- list all tags for a Docker image on a remote registry.
EXAMPLE:
- list all tags for ubuntu:
dockertags ubuntu
- list all php tags containing apache:
dockertags php apache
HELP
fi
image="$1"
tags=`wget -q https://registry.hub.docker.com/v1/repositories/${image}/tags -O - | sed -e 's/[][]//g' -e 's/"//g' -e 's/ //g' | tr '}' '\n' | awk -F: '{print $3}'`
if [ -n "$2" ]
then
tags=` echo "${tags}" | grep "$2" `
fi
echo "${tags}"
命名为 dockertags
, 把路劲放在 ~/.zshrc
或者 ~/.bashrc
下: alias dockertags='${path}'
可以使用 dockertags ruby
可以查看 ruby
所有的 tags
具体的 ruby tags
可以在这里查看
5.扩展
- http://in4.rccchina.com/doc/index.html#/doc/d864855f
- docker-compose 编排