docker安装

(1)使用脚本自动安装

curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun

(2)启动 Docker CE

sudo systemctl enable docker
sudo systemctl start docker

(3)建立 docker 用户组

建立 docker 组:

sudo groupadd docker

将当前用户加入 docker 组:

sudo usermod -aG docker $USER

(4)测试 Docker 是否安装正确

docker run hello-world

若能正常输出以上信息,则说明安装成功。

 (5)列出镜像列表

docker image ls

(6)查看镜像体积

docker system df

 (7)删除镜像

docker image rm [选项] <镜像1> [<镜像2> ...]

(8)使用 Dockerfile 定制镜像

mkdir mynginx
cd mynginx
touch Dockerfile
vim Dockerfile
FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
# FROM 指定基础镜像
# RUN 执行命令

Dockerfile的正确写法

FROM debian:jessie

RUN buildDeps='gcc libc6-dev make' \
    && apt-get update \
    && apt-get install -y $buildDeps \
    && wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz" \
    && mkdir -p /usr/src/redis \
    && tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1 \
    && make -C /usr/src/redis \
    && make -C /usr/src/redis install \
    && rm -rf /var/lib/apt/lists/* \
    && rm redis.tar.gz \
    && rm -r /usr/src/redis \
    && apt-get purge -y --auto-remove $buildDeps

构建镜像

docker build -t nginx:v3 .
# -t nginx:v3 最终镜像的名称
# . 表示当前目录

 (9)Dockerfile指令详解

1) COPY 复制文件

--chown=<user>:<group> 选项来改变文件的所属用户及所属组。

COPY --chown=55:mygroup files* /mydir/
COPY --chown=bin files* /mydir/
COPY --chown=1 files* /mydir/
COPY --chown=10:11 files* /mydir/

2) ADD 更高级的复制文件

ADD --chown=55:mygroup files* /mydir/
ADD --chown=bin files* /mydir/
ADD --chown=1 files* /mydir/
ADD --chown=10:11 files* /mydir/

copy指令和add指令的选用原则:所有的文件复制均使用 COPY 指令,仅在需要自动解压缩的场合使用 ADD

 

 

4)ENTRYPOINT 入口点

 

5)ENV 设置环境变量

ENV VERSION=1.0 DEBUG=on \
    NAME="Happy Feet"

先定义了环境变量 NODE_VERSION,其后的 RUN 这层里,多次使用 $NODE_VERSION 来进行操作定制。

ENV NODE_VERSION 7.2.0

RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \
  && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
  && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
  && grep " node-v$NODE_VERSION-linux-x64.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
  && tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 \
  && rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
  && ln -s /usr/local/bin/node /usr/local/bin/nodejs

6)WORKDIR 指定工作目录

7)USER 指定当前用户

RUN groupadd -r redis && useradd -r -g redis redis
USER redis
RUN [ "redis-server" ]

 10)操作容器

# 启动容器-- 新建并启动
docker run ubuntu:14.04 /bin/echo 'Hello world'

# 启动已终止容器
docker container start
# 后台运行
docker run ubuntu:17.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

容器会把输出的结果 (STDOUT) 打印到宿主机上面

docker run -d ubuntu:17.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

此时容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用 docker logs 查看)。

# 终止容器

 

 

 

 

 

 

参考手册:https://yeasy.gitbooks.io/docker_practice/content/install/centos.html

 

posted @ 2018-10-31 11:14  邹柯  阅读(306)  评论(0编辑  收藏  举报