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 <newbee@docker.com>
RUN apt-get -qq update
RUN apt-get -qqy install ruby ruby-dev
RUN gem install sinatra
指令:
- FROM,指定基础镜像名称,Docker可以在某个镜像的基础上添加功能
- MAINTAINER,指定作者信息
- RUN
"RUN <command>"
,运行命令 - CMD
"CMD ["command", "param1"]"
,指定容器启动后运行的命令,每个容器只能一条CMD指令,如果有多个,以最后一个为准 - EXPOSE
"EXPOSE <port> [<port>...]"
,指定Docker容器暴露的端口 - ENV
"ENV <key> <value>"
,指定一个环境变量 - ADD
"ADD <src> <dest>"
,复制资源至容器,也可以是URL,如果是tar文件会自动解压(注意要使用相对路径) - COPY
"COPY <src> <dest>"
,也是复制文件(相对路径) - USER
"USER USERNAME(UID)"
,指定容器运行时的用户 - WORKDIR
"WORKDIR /path/to/workdir"
,为后续指令配置工作目录
build镜像:
$ sudo docker build -t="ouruser/sinatra:v2" .
网友评论