docker使用

本文将简单介绍docker的基本使用方法。本文以使用nginx的镜像为例说明如何快速上手使用docker。

docker 安装


拉取镜像

docker pull nginx

启动容器

1# 启动一个nginx容器,主机的8000转发至容器的80端口

2 docker run -d --name my-nginx -p 8000:80 nginx

# 启动一个nginx容器,主机的8000转发至容器的80端口

docker run -d --name my-nginx -p 8000:80 nginx

测试访问nginx

浏览器访问http://{主机ip}:8000,可以看到Welcome to nginx!页面

停止容器

1# 查询已经启动的容器

2 docker ps

# 查询已经启动的容器

docker ps

例如查到类似如下信息:

1 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

2 b8eca8f07f68        nginx              "nginx -g 'daemon ..."  24 seconds ago      Up 23 seconds

# 使用my-nginx对应的ContainerID停止容器

docker stop {container_id}

删除容器

# 使用my-nginx对应的ContainerID删除容器

docker rm {container_id}

注意

如果容器已经停止,可以使用命令docker ps -a查询所有包含已停止的容器;

使用dockerfile构建docker镜像

简介

在了解了docker的基本使用方法后,我们可以通过容器快速准备环境并部署服务。

有些重复性的工作,例如:手动配置一些配置项,安装特定的软件包,使用命令或脚本启动特定服务等等。为了解决这些通用或者重复性的事情,我们可以通过构建一个自己个性化的镜像来固化下来这些环境信息。

本文将简单介绍使用dockerfile构建docker镜像的基本使用方法。

本文以使用ubuntu的镜像为例说明如何根据已有的镜像为基础构建自己需要的镜像。

本例中将演示以Ubuntu 16.04为基础,安装ssh, jdk, vim等软件。

安装包准备

jdk-8u77-linux-x64.tar.gz

目录结构及Dockerfile

假如工作目录在:~/dockerfiles/my-ubuntu

此目录中的结构如下:

|-- Dockerfile

`-- files

    `-- jdk-8u77-linux-x64.tar.gz

其中Dockerfile中的内容如下:

FROMubuntu:16.04

LABELmaintainer="[email protected]"

ENV LANG zh_CN.UTF-8

ENV LC_ALL zh_CN.UTF-8

ENV TZ Asia/Shanghai

# 设置apt-get源

RUN sed -i"s/archive.ubuntu.com/mirrors.aliyun.com/g"/etc/apt/sources.list \

&& sed -i"s/security.ubuntu.com/mirrors.aliyun.com/g"/etc/apt/sources.list \

    && apt-get update

# 安装常用工具 设置SSH

RUN apt-get install -y openssh-server vim telnet sudo \

    && rm /etc/ssh/ssh_host_dsa_key -rf \

    && rm /etc/ssh/ssh_host_rsa_key -rf \

    && ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key \

    && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key \

    && useradd guest \

&&echo"guest:guest!@#"| chpasswd \

&&echo"guest  ALL=(ALL)      ALL">> /etc/sudoers \

&&echo"root:123456"| chpasswd \

&& sed -i"s/PermitRootLogin\ without-password/PermitRootLogin\ yes/g"/etc/ssh/sshd_config

# 修改vim配置

RUN sed -i'1s/^/set encoding=utf-8\n/'/etc/vim/vimrc \

&&echo"set hls">> /etc/vim/vimrc \

&&echo"set expandtab">> /etc/vim/vimrc \

&&echo"set sw=4">> /etc/vim/vimrc \

&&echo"set tabstop=4">> /etc/vim/vimrc

RUN mkdir /usr/java

# 安装jdk

ADD files/jdk-8u77-linux-x64.tar.gz /usr/java

RUNecho"export JAVA_HOME=/usr/java/jdk1.8.0_77">> /etc/profile \

&&echo"export PATH=\$JAVA_HOME/bin:\$PATH">> /etc/profile \

&&echo"export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar">> /etc/profile

RUN mkdir /var/run/sshd

EXPOSE 22 8080

ENTRYPOINT /usr/sbin/sshd -D


构建镜像

cd~/dockerfiles/my-ubuntu

# build镜像,注意最后有一个英文半角点号

docker build --tag="my-ubuntu:1.0".

稍等片刻后构建完成

查询镜像

使用如下命令可以看到已经构建好的镜像

docker images

例如:

REPOSITORY                                      TAG                IMAGE ID            CREATED            SIZE

my-ubuntu                                      1.0                1979d1447f6d        2 minutes ago

你可能感兴趣的:(docker使用)