1. 安裝
Centos6.x
Docker 軟件包已經(jīng)包括在默認(rèn)的 CentOS-Extras 軟件源里。因此想要安裝 docker,只需要運(yùn)行下面的 yum 命令:
[root@localhost ~]# yum install docker
Centos7.x
官方源里的docker無法啟動(dòng),下面是官方的安裝方法
# 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
啟動(dòng)服務(wù):
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker
2 . docker配置
/etc/sysconfig/docker
增加啟動(dòng)參數(shù)
6.x other_args
7.x OPTIONS
修改工作目錄:
other_args="--graph=/data/docker "
3. 運(yùn)行容器
啟動(dòng)容器(已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
其它啟動(dòng)參數(shù):
--add-host="www.baidu.com:1.1.1.1" #給容器指定host
--dns="114.114.114.114" #指定容器dns
進(jìn)入容器運(yùn)行環(huán)境
docker exec -it 703cecb60169 /bin/bash
4. 鏡像操作
4.1 修改已有鏡像
- 啟動(dòng)容器
- 在容器中做出需要的更改
- 提交容器的更改
- 使用新的鏡像啟動(dòng)容器
提交容器的更改:
$ sudo docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8 ouruser/sinatra:v2
4f177bd27a9ff0f6dc2a830403925b5360bfe0b93d476f7fc3231110e7f71b1c
4.2 通過Dockerfile創(chuàng)建鏡像
- 創(chuàng)建一個(gè)目錄
- 創(chuàng)建Dockerfile文件
- 構(gòu)建鏡像
Dockerfile語(yǔ)法:
# 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,指定基礎(chǔ)鏡像名稱,Docker可以在某個(gè)鏡像的基礎(chǔ)上添加功能
- MAINTAINER,指定作者信息
- RUN
"RUN <command>",運(yùn)行命令 - CMD
"CMD ["command", "param1"]",指定容器啟動(dòng)后運(yùn)行的命令,每個(gè)容器只能一條CMD指令,如果有多個(gè),以最后一個(gè)為準(zhǔn) - EXPOSE
"EXPOSE <port> [<port>...]",指定Docker容器暴露的端口 - ENV
"ENV <key> <value>",指定一個(gè)環(huán)境變量 - ADD
"ADD <src> <dest>",復(fù)制資源至容器,也可以是URL,如果是tar文件會(huì)自動(dòng)解壓(注意要使用相對(duì)路徑) - COPY
"COPY <src> <dest>",也是復(fù)制文件(相對(duì)路徑) - USER
"USER USERNAME(UID)",指定容器運(yùn)行時(shí)的用戶 - WORKDIR
"WORKDIR /path/to/workdir",為后續(xù)指令配置工作目錄
build鏡像:
$ sudo docker build -t="ouruser/sinatra:v2" .