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" .