Docker使用基础

1. 安装

Centos6.x
Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令:

[root@localhost ~]# yum install docker

Centos7.x
官方源里的docker无法启动,下面是官方的安装方法

# tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
yum install docker-engine

启动服务:

[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker

2 . docker配置

/etc/sysconfig/docker

增加启动参数

6.x other_args
7.x OPTIONS

修改工作目录:

other_args="--graph=/data/docker "

3. 运行容器

启动容器(已gitlab为例)


docker run --detach \
    --hostname gitlab.xxx.com \
    --publish 443:443 --publish 8080:80 --publish 22:22 \
    --name gitlab \
    --restart always \
    --volume /data/gitlab/config:/etc/gitlab \
    --volume /data/gitlab/logs:/var/log/gitlab \
    --volume /data/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest 

其它启动参数:

--add-host="www.baidu.com:1.1.1.1"      #给容器指定host
--dns="114.114.114.114"                 #指定容器dns

进入容器运行环境

docker exec -it 703cecb60169 /bin/bash 

4. 镜像操作

4.1 修改已有镜像
  • 启动容器
  • 在容器中做出需要的更改
  • 提交容器的更改
  • 使用新的镜像启动容器

提交容器的更改:

$ sudo docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8 ouruser/sinatra:v2
4f177bd27a9ff0f6dc2a830403925b5360bfe0b93d476f7fc3231110e7f71b1c
4.2 通过Dockerfile创建镜像
  • 创建一个目录
  • 创建Dockerfile文件
  • 构建镜像

Dockerfile语法:

# This is a comment
FROM ubuntu:14.04
MAINTAINER Docker Newbee 
RUN apt-get -qq update
RUN apt-get -qqy install ruby ruby-dev
RUN gem install sinatra

指令:

  1. FROM,指定基础镜像名称,Docker可以在某个镜像的基础上添加功能
  2. MAINTAINER,指定作者信息
  3. RUN "RUN ",运行命令
  4. CMD "CMD ["command", "param1"]",指定容器启动后运行的命令,每个容器只能一条CMD指令,如果有多个,以最后一个为准
  5. EXPOSE "EXPOSE [...]",指定Docker容器暴露的端口
  6. ENV "ENV ",指定一个环境变量
  7. ADD "ADD ",复制资源至容器,也可以是URL,如果是tar文件会自动解压(注意要使用相对路径)
  8. COPY "COPY ",也是复制文件(相对路径)
  9. USER "USER USERNAME(UID)",指定容器运行时的用户
  10. WORKDIR "WORKDIR /path/to/workdir",为后续指令配置工作目录

build镜像:

$ sudo docker build -t="ouruser/sinatra:v2" .

你可能感兴趣的:(Docker使用基础)