docker常用命令

 镜像仓库
docker login
docker search centos docker pull centos
docker push centos

 

 

镜像

docker images  //列出镜像
docker rmi     //删除镜像
docker tag centos mycentos //标记本地镜像,将其归入某一仓库。


//保存镜像&载入镜像
docker save -o /root/tomcat.tar mytomcat
docker load -i /root/tomcat.tar

//使用 Dockerfile 创建镜像
docker build -t xxx:latest -f xxx-Dockerfile .

 

容器

docker ps      //running
docker ps -a   //all
docker ps -l   //latest
docker start p1
docker stop p1
docker rm p1
docker inspect p1 //查看容器信息
docker commit mycentos mytomcat //从容器创建一个新的镜像。
 
//将文件系统作为一个tar归档文件导出到STDOUT
docker export -o /root/t1.tar t1
//从归档文件中创建镜像。
docker import t1.tar mytomcat:latest

 

容器相关其他指令

docker run -itd --name c2(容器名字) centos(这是镜像名) /bin/bash  //创建容器并运行bash(守护模式)
docker exec -it c2 /bin/bash   //进入容器交互式窗口并运行bash
docker exec c2 /usr/local/startup.sh //在宿主机执行容器内的脚本 //挂载 -v 宿主机:容器 docker run -itd --name c2 -v /opt:/usr/local/myhtml centos /bin/bash
//查看日志
docker logs c2

# 重启容器
docker restart containerName
//文件拷贝
docker cp 1.txt c2:/root //宿主机-容器
docker cp c2:/root/2.txt /root //容器-宿主机

 

更多docker命令 https://www.runoob.com/docker/docker-command-manual.html

以下内容转载于  https://www.lenggirl.com/

 

Docker Hub安装

VMware公司开源的企业级的Docker Registry管理项目:harbor

有了仓库,我们可以直接push镜像上去,然后从其他地方拉,不用借助U盘。

安装参考: 官方文章

环境依赖较新的docker1.10+docker-compose1.60+python2.7,我们选择离线安装方式:

wget https://storage.googleapis.com/harbor-releases/release-1.6.0/harbor-offline-installer-v1.6.0-rc3.tgz
tar xvf harbor-offline-installer-v1.6.0-rc3.tgz
cd harbor

编辑docker-compose.yml

  proxy:
    image: goharbor/nginx-photon:v1.6.0
    container_name: nginx
    restart: always
    volumes:
      - ./common/config/nginx:/etc/nginx:z
    networks:
      - harbor
    ports:
      - 8888:80
      - 1443:443
      - 4443:4443

 

修改common/templates/registry/config.yml文件加入8888端口:

vim common/templates/registry/config.yml

auth:
  token:
    issuer: harbor-token-issuer
    realm: $public_url:8888/service/token
    rootcertbundle: /etc/registry/root.crt
    service: harbor-registry

 

编辑harbor.cfg

hostname = 192.168.152.12
harbor_admin_password = admin

 

启动并登陆:

sudo su
ufw allow 8888
./prepare
docker-compose up -d

打开:http://192.168.152.12:8888,账号|密码:admin

 

 

上传镜像到私有仓库

#cd到DockerFile所在目录
docker build -t yourApp:appVersion .
docker tag yourApp:appVersion  hubIP:8888/lib/yourApp:appVersion
docker login hubIP:8888
docker push hubIP/yourApp:appVersion

 

docker-compose工具安装

curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

 

 

docker-compose使用

# cd到docker-compose.yaml目录
docker-compose pull
docker-compose up -d

# 查看详情
docker-compose ps

 

docker-compose.yaml示例

version: '2'
services:
  your-service-name:
    container_name: "my-container-name"
    image: yourIP:8888/lib/yourImageName:1.0.0
    restart: always
    ports:
      - "172.17.0.1:hostIP:dockerIP"
    environment:
      RUN_OPTS: "-conf=/root/cfg/yourApp.ini -logdir=/root/log -logdebug=0"
    volumes:
      - /opt/server/cfg/yourApp.ini:/root/cfg/yourApp.ini
      - /opt/server/api/log:/root/log

 

  

关于windows创建镜像的问题

在windows下操作的,所以导致scripts目录下两个sh脚本包含了windows的换行符,从而出现错误$’\r’: command not found 错误。
解决方法: 修改Dockerfile文件

  • 1、安装dos2unix*
    在安装脚本里面添加安装dos2unix*
RUN yum install -y dos2unix* java-1.8.0-openjdk-devel.x86_64 unzip gettext nmap-ncat openssl, which gnupg, telnet \
 && yum clean all -y

 

  • 2、对两个脚本进行转码
    在添加脚本后的操作后面添加 RUN dos2unix ${}.sh 语句,如下:
# add scripts
COPY scripts/ ${ROCKETMQ_HOME}/bin/

RUN chown -R ${uid}:${gid} ${ROCKETMQ_HOME}/bin/

RUN dos2unix ${ROCKETMQ_HOME}/bin/runserver-customize.sh
RUN dos2unix ${ROCKETMQ_HOME}/bin/runbroker-customize.sh

 

posted @ 2020-03-28 22:28  yklszm  阅读(242)  评论(0编辑  收藏  举报