docker尝试

1 查看系统镜像

docker images

2 docker启动csvn

每次run都会生成一个新的实例,所以,应该删除无用的实例,之后start启动实例。

docker run -d -p 3343:3343 -p 18080:18080 ip:5000/docker-csvn /bin/bash

/bin/bash:告诉docker要在容器里面执行此命令。(如果无法启动,就不要添加  /bin/bash)

-d: 后台运行容器,并返回容器ID

-p 端口映射

-v 目录映射    docker run -d  -v /masterDir:/opt   .......    其中/masterDir为宿主机的目录,/opt为容器的目录,且容器中目录必须存在

 

如果外部端口3343被占用,修改外部端口为其他端口3343->13343

docker run -d -p 13343:3343 -p 18080:18080 ip:5000/docker-csvn /bin/bash

3  查看

docker ps  查看当前运行的容器

docker ps -a 查看所有容器的状态

4 停止

docker stop  1411ebce2808  

1411ebce2808 为csvn中docker的image运行的镜像

5 删除容器

docker rm id/name

6 删除镜像

docker rmi id/name 删除某个镜像

7 启动容器

docker start id/name 启动/停止某个容器

8 docker exec -it id  启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)

docker exec -it id  /bin/bash

-i :即使没有附加也保持STDIN 打开

-t :分配一个伪终端

 

9 联网

 

wget http://ip:3343/csvn

 

10 采用grails生成war并部署

 .gitlab-ci.yml

 

 

stages:
  - build
  - csvnbuild
 
job_build:
  image: tophatdave/grails-2.4.4
  stage: build
  script:
   - cd svnedge
   - cd console
   - grails  -version
   - cd csvndocker
   - cd conf
   - ls -l
   - cd ../../
   - grails  war
   - find . -name svnedge-5.2.0.war  -type f | xargs -i mv {} ./csvndocker/conf/csvn.war
   - cd csvndocker
   - cd conf
   - ls -l
   
  only:
    - master
  tags:
    - docker
  cache:
    paths:
      - svnedge/console/csvndocker
  artifacts:
    paths:
      - svnedge/console/csvndocker
job_build_csvn:
  stage: csvnbuild
  script:
    - ls -l
    - cd svnedge
    - cd console
    - cd csvndocker
    - pwd
    - ls -l
    - docker build --no-cache -t "xx.xx.xx.xx:5000/docker-csvn" .
    - docker push "xx.xx.xx.xx:5000/docker-csvn"
  only:
    - master
  tags:
    - dockerbuild

 

11  问题

1 docker生成镜像文件,中间一直采用老的dockerfile文件,原因为cache共享的路径为为大的空间,应该只共享一个war包即可。

 

从:

 

cache:

     paths:
       - svnedge/console/csvndocker

   

修改为:

 

cache:

     paths:

       - svnedge/console/csvndocker/conf/csvn.war

2  docker volume

Volume就是目录或者文件,它可以绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上。

docker inspect命令找到Volume在主机上的存储位置

docker inspect id

 

 "Mounts": [
            {
                "Type": "volume",

                "Name": "cdaff81111fb6baa1c043f75f5f7e62bebf03d4634c4",

                "Source": "/var/lib/docker/volum/_data",          //是主机上的目录

                "Destination": "/opt/tc/csvn/data",     //是容器中的路径
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],
 

 

3 docker镜像push到服务器

docker本地镜像tophatdave/grails-2.4.4,push到服务器。

 

docker tag tophatdave/grails-2.4.4  11.2.2.2:5000/mygrails2.4.4
docker push 11.2.2.2:5000/mygrails2.4.4

 

4 Rancher学习

rancher是一个开源的企业级全栈化容器部署及管理平台。在rancher添加服务后,此即为容器内的服务,可通过后台的xshell中,docker ps中,可以查看所起的容器应用。 rancher也是docker的一个镜像服务。


5 Dockerfile用户切换及添加

 

要求:
(1)增加一个新用户,名为mynewuser
(2)让这个用户有root权限
(3)设置其密码为mynewpassword
(4)container启动后以mynewuser登录,并且直接到mynewuser的home目录下


将下面代码片段放到Dockerfile里面。

RUN useradd --create-home --no-log-init --shell /bin/bash mynewuser
RUN adduser mynewuser sudoRUN echo 'mynewuser:mynewpassword' | chpasswd
USER mynewuser      //用户切换
WORKDIR /home/mynewuser

 

6 空间的清理

docker system df 查看cici磁盘的使用情况。

docker system prune,可以用于清理dangling镜像和容器,以及失效的数据卷和网络。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值