最近项目要求用容器部署,所以需要将docker的用法搞清楚,在操作过程中,积累了一些操作方法和技巧,作为笔记,为后面使用做个参考。
首先安装docker需要给centos增加源(参考https://www.runoob.com/docker/centos-docker-install.html):
sudo yum-config-manager
–add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装:
yum install -y docker-ce
启动docker
systemctl start docker
设置自动启动
systemctl enable docker
设置安装源

sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{    "registry-mirrors": ["https://akchsmlh.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker

使用docker部署项目时,必须基于一个基础镜像,我比较熟悉centos,所以首先安装centos7的基础镜像:
docker pull centos:centos7

看已安装镜像
docker images
基于镜像创建一个容器并运行,映射sshd端口号

基于镜像创建一个容器并运行,映射sshd端口号
docker run -itd –name mycentos7 -v /web:/web -p 222:22 -p280:80 –privileged uag:v1.0.0 /usr/sbin/init
进入容器,然后剩余操作就跟普通的linux操作一致了。
docker exec -it mycentos /bin/bash
进入容器后,安装所需服务软件,并部署好文件。如果要将容器提交为镜像,然后导出给其他地方部署用,建议先停止所有服务,将挂载的目录中的文件移除出去再提交、导出镜像,这样镜像中的/web目录就是个空目录,方便导入镜像后创建容器去挂载外面的web目录(web目录随镜像一起发布)。

停止容器
dockert stop mycentos
更名容器
docker rename mycentos mycentos7

容器提交为镜像
docker commit mycentos7 mycentos:7

导出镜像
docker save -o mycentos7.tar mycentos7

压缩镜像
gzip mycentos7.tar

解压镜像
gunzip mycentos7.tar.gz

导入镜像
docker load -i mycentos7.tar

使用技巧:在docker中运行的centos7也支持rc.local,不过/etc/profile不会在进入shell交互时自动执行,需要在/etc/profile.d/xxx.sh中设置自己需要部署的环境变量。