docker 安装及命令

1、 安装软件包

sudo yum update

sudo yum install -y yum-utils

2、 添加docker稳定版本的yum软件源:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3、 更新yum软件源缓存,并安装docker

sudo yum install -y docker-ce

4、 确认docker启动是否正常

sudo systemctl start docker

 

-----------------------------------

1、 拉取镜像

docker pull 【hello-world】

docker pull 【xxxx/hello-word】其他非官方仓库,xxx代表仓库地址

2、 查看镜像

docker images

docker images ls

3、添加新标签

docker tag 【hello-world】 【mytest-hello-world】

4、查看镜像详细信息

docker  inspect 【hello-world】

5、 查看镜像历史

docker history 【hello-world】

6、搜索官方带nginx关键字的镜像

docker search --filter=is-official=true 【nginx】

7、 搜索收藏数超过4的包含nginx关键字的镜像

docker search --filter=stars=4 【nginx】

8、使用标签删除镜像

docker rmi 【mytest-hello-world】

9、使用镜像ID删除镜像

docker rmi 【fce289e99eb9】

docker rmi 【fce289e99eb9】-f , 强制删除,不建议用这个,先删除容器再执行删除镜像

10、查看所有的容器

docker ps -a

11、 删除容器

 docker rm   【93fd377f1087】

12、 清理镜像(清理一些镜像临时文件)

docker image prune

13、 创建一个容器

docker run 【hello-world】

14、 查看docker守护进程

ps -rf | grep docker

15、 

 

 

-------------------------------- 创建镜像 -------------------------------------------------

 

1、 上传jar包放linux下面,现以/usr/local/app为例

 

2、 创建Dockerfile

[root@xiaoqing app]# vi Dockerfile 

#VERSION EE:latest

FROM livingobjects/jre8

MAINTAINER wangxiaoqing "417716126@qq.com"

VOLUME /tmp

ADD icloud-center.jar /usr/local/app/icloud-center.jar

ENV TZ=Asia/Shanghai

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

#JAVA_OPTIONS

ENV JAVA_OPTIONS "-Xms1024M \

                  -Xmx1024M \

                  -Xmn512M \

                  -XX:SurvivorRatio=8 \

                  -XX:MaxTenuringThreshold=7 \

                  -XX:GCTimeRatio=19 \

                  -Xnoclassgc \

                  -XX:+DisableExplicitGC \

                  -XX:+UseParNewGC \

                  -XX:+UseConcMarkSweepGC \

                  -XX:+CMSPermGenSweepingEnabled \

                  -XX:+UseCMSCompactAtFullCollection \

                  -XX:CMSFullGCsBeforeCompaction=0 \

                  -XX:+CMSClassUnloadingEnabled \

                  -XX:-CMSParallelRemarkEnabled \

                  -XX:CMSInitiatingOccupancyFraction=70 \

                  -XX:SoftRefLRUPolicyMSPerMB=0 \

                  -XX:+PrintClassHistogram \

                  -XX:+PrintGCDetails \

                  -XX:+PrintGCTimeStamps \

                  -XX:+PrintGCApplicationConcurrentTime \

                  -XX:+PrintGCApplicationStoppedTime \

                  -Xloggc:/logs/icloud-center.log"

ENTRYPOINT java ${JAVA_OPTIONS} -Djava.security.egd=file:/dev/./urandom -jar /usr/local/app/icloud-center.jar

~

 

3、 查看目录

[root@xiaoqing app]# ll

total 40248

-rw-r--r-- 1 root root     1419 Jan 27 21:53 Dockerfile

-rw-r--r-- 1 root root 41206942 Jan  9 01:23 icloud-center.jar

 

4、 构建镜像

[root@xiaoqing app]# docker build -t wangxiaoqing/icloud-center .       【最后有一个点,别忘记了】

 

5、 查看镜像

 

6、运行容器(守护态运行)

docker run -d   wangxiaoqing/icloud-center

docker run -d -p 192.168.11.16:8761:8761 wangxiaoqing/icloud-center    (指定端口,需要防火墙开放端口)

docker run -d --name icloud-center -p 8761:8761 icloud-center   (容器命名用name,不然会自动分配一个名字)

 

7、 查看容器日志

docker  logs [container]

 

8、容量关联

docker run -d -p 192.168.11.16:9777:9777 icloud-auth  --link epic_wiles:epic_wiles icloud-center

 

9、 进入容器

sudo docker exec -it 【700191ff8744】 bash

 

--------------------------------安装portainer----------------------------------------- 

  1)下载镜像

 docker pull portainer/portainer

 2)创建数据卷:

  docker volume create portainer_data

  3)运行容器

 docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

  参数说明:

-d:容器在后台运行;

-p 9000:9000 :宿主机9000端口映射容器中的9000端口

-v /var/run/docker.sock:/var/run/docker.sock :把宿主机的Docker守护进程(Docker daemon)默认监听的Unix域套接字挂载到容器中;

-v portainer_data:/data :把宿主机portainer_data数据卷挂载到容器/data目录;

 

 4)启动守护进程

vi /usr/lib/systemd/system/docker.service

[Unit]

Description=Docker Application Container Engine

Documentation=http://docs.docker.com

After=network.target docker.socket

Requires=docker.socket

[Service]

Type=notify

# the default is not to use systemd for cgroups because the delegate issues still

# exists and systemd currently does not support the cgroup feature set required

# for containers run by docker

EnvironmentFile=/etc/sysconfig/docker

ExecStart=/usr/bin/docker daemon -H fd:// -H tcp://0.0.0.0:2375

MountFlags=slave

LimitNOFILE=1048576

LimitNPROC=1048576

LimitCORE=infinity

TimeoutStartSec=0

# set delegate yes so that systemd does not reset the cgroups of docker containers

Delegate=yes

[Install]

WantedBy=multi-user.target

生效服务:systemctl daemon-reload 

 service docker restart 

 

 

----------------------------------安装jenkins-------------------------------------------

1、 拉取镜像

docker pull jenkins

2、 

  • 创建目录
  • 运行container,其中49001:8080,表示docker内部使用49001端口,服务器使用8080端口,然后将二者映射起来,之后在浏览器访问的时候实际上还是访问服务器的8080端口

mkdir /data/jenkins_home

chmod 777 jenkins_home/

docker run -d --name jenkins -p 8080:8080 -v /data/jenkins_home:/var/jenkins_home jenkins

docker ps | grep jenkins

 

----------------------------------创建docker仓库---------------------------------------

 

1、 创建docker仓库

sudo docker run -d -v /data/docker/registry:/var/lib/registry -p 5000:5000 --restart=always --privileged=true --name registry registry:latest

 

-v /data/docker/registry:/var/lib/registry 默认情况下,会将仓库存放于容器内的/var/lib/registry目录下,指定本地目录挂载到容器。

 

-p 5000:5000 端口映射

 

--restart=always1 在容器退出时总是重启容器,主要应用在生产环境

 

--privileged=true 在CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权,不加上传镜像会报权限错误OSError: [Errno 13] Permission denied: ‘/tmp/registry/repositories/liibrary’)或者(Received unexpected HTTP status: 500 Internal Server Error)错误

 

--name registry 指定容器的名称

 

 

2、上传镜像问题

#docker push 192.168.163.131:5000/test

The push refers to a repository [192.168.163.131:5000/test]

Get https://192.168.11.16:5000/v2/: http: server gave HTTP response to HTTPS client

 

解决办法是:

在/etc/docker下,创建daemon.json文件,写入:

 

{ "insecure-registries":["192.168.11.16:5000"]}

 

重启docker:

systemctl restart docker.service 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值