centos7安装docker
centos7安装docker
fengyexjtu 发表于11个月前
centos7安装docker
  • 发表于 11个月前
  • 阅读 58
  • 收藏 1
  • 点赞 0
  • 评论 0

华为云·免费上云实践>>>   

centos7安装docker

修改源

    sudo 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

安装docker

    yum install docker-engine

安装过程可能比较慢,包下载不下来 docker-engine-1.12.3-1.el7.centos.x86_64.rpm

可以手动下载,然后使用命令 yum localinstall docker-engine-1.12.3-1.el7.centos.x86_64.rpm进行安装

安装Docker-compose

先安装pip

# wget  https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py 
# python get-pip.py

再安装compose

# pip install docker-compose

测试案例

下载测试代码

# git clone https://github.com/jiekechoo/docker-haproxy

运行

# cd docker-haproxy
# docker-compose up

浏览器打开本机IP:http://192.168.1.230

docker加速器配置

使用daocloud的加速器.还可以配置163等

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://6f0d54fb.m.daocloud.io

会在 /etc/docker/daemon.json 中 生成以下语句:

{"registry-mirrors": ["http://6f0d54fb.m.daocloud.io"]}

重启docker即可.

docker简单使用流程

创建一个ubuntu的虚拟机,退出后删除本虚拟机

docker run -it --rm ubuntu:14.04 /bin/bash

创建一个ubuntu的虚拟机,并挂载一个文件夹,退出后删除本虚拟机

docker run -it -v /c/Users/hzlzjr/:/hz/ --rm ubuntu:14.04 /bin/bash

创建一个名字为ubuntu的ubuntu系统虚拟机

docker run -it --name ubuntu ubuntu:14.04 /bin/bash

查看所有虚拟机和状态

docker ps -a

查看运行的虚拟机

docker ps -a

开启虚拟机

docker start ubuntu

进入虚拟机

docker exec -it ubuntu /bin/zsh

Docker 清理命令

杀死所有正在运行的容器

docker kill $(docker ps -a -q)

删除所有已经停止的容器

docker rm $(docker ps -a -q)

删除所有未打 dangling 标签的镜像

docker rmi $(docker images -q -f dangling=true)

删除所有镜像

docker rmi $(docker images -q)

为这些命令创建别名

# ~/.bash_aliases

# 杀死所有正在运行的容器.
alias dockerkill='docker kill $(docker ps -a -q)'
# 删除所有已经停止的容器.
alias dockercleanc='docker rm $(docker ps -a -q)'
# 删除所有未打标签的镜像.
alias dockercleani='docker rmi $(docker images -q -f dangling=true)'
# 删除所有已经停止的容器和未打标签的镜像.
alias dockerclean='dockercleanc || true && dockercleani'

常用命令

  1. 查看容器的root用户密码 docker logs &lt;容器名orID&gt; 2&gt;&1 | grep '^User: ' | tail -n1 因为Docker容器启动时的root用户的密码是随机分配的。所以,通过这种方式就可以得到redmine容器的root用户的密码了。
  2. 查看容器日志 docker logs -f &lt;容器名orID&gt;
  3. 查看正在运行的容器 docker ps docker ps -a为查看所有的容器,包括已经停止的。
  4. 删除所有容器 docker rm $(docker ps -a -q) 删除单个容器 docker rm &lt;容器名orID&gt;
  5. 停止、启动、杀死一个容器 docker stop &lt;容器名orID&gt; docker start &lt;容器名orID&gt; docker kill &lt;容器名orID&gt;
  6. 查看所有镜像 docker images
  7. 删除所有镜像 docker rmi $(docker images | grep none | awk '{print $3}' | sort -r)
  8. 运行一个新容器,同时为它命名、端口映射、文件夹映射。以redmine镜像为例 docker run --name redmine -p 9003:80 -p 9023:22 -d -v /var/redmine/files:/redmine/files -v /var/redmine/mysql:/var/lib/mysql sameersbn/redmine
  9. 一个容器连接到另一个容器 docker run -i -t --name sonar -d -link mmysql:db tpires/sonar-server sonar 容器连接到mysql容器,并将mmysql容器重命名为db。这样,sonar容器就可以使用db的相关的环境变量了。
  10. 拉取镜像 docker pull &lt;镜像名:tag&gt;docker pull sameersbn/redmine:latest
  11. 当需要把一台机器上的镜像迁移到另一台机器的时候,需要保存镜像与加载镜像。 机器a docker save busybox-1 &gt; /home/save.tar 使用scp将save.tar拷到机器b上,然后: docker load &lt; /home/save.tar
  12. 构建自己的镜像 docker build -t &lt;镜像名&gt; &lt;Dockerfile路径&gt; 如Dockerfile在当前路径: docker build -t xx/gitlab .
  13. 重新查看container的stdout
# 启动top命令,后台运行
$ ID=$(sudo docker run -d ubuntu /usr/bin/top -b)
# 获取正在running的container的输出
$ sudo docker attach $ID
top - 02:05:52 up  3:05,  0 users,  load average: 0.01, 0.02, 0.05
Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    373572k total,   355560k used,    18012k free,    27872k buffers
Swap:   786428k total,        0k used,   786428k free,   221740k cached
^C$
$ sudo docker stop $ID
  1. 后台运行(-d)、并暴露端口(-p) docker run -d sh-p 127.0.0.1:33301:22 centos6-s
  2. 从Container中拷贝文件出来 sudo docker cp 7bb0e258aefe:/etc/debian_version . 拷贝7bb0e258aefe中的/etc/debian_version到当前目录下。 注意:只要7bb0e258aefe没有被删除,文件命名空间就还在,可以放心的把exit状态的container的文件拷贝出来
  3. 查看container的ip地址 docker inspect --format='{{.NetworkSettings.IPAddress}}' $CONTAINER_ID

备注:

  1. ubuntu14下的docker是没有service服务。去除每次sudo运行docker命令,需要添加组:
# Add the docker group if it doesn't already exist.
$ sudo groupadd docker
#改完后需要重新登陆用户
$ sudo gpasswd -a ${USER} docker
  1. ubuntu14的febootstrap没有-i命令
  2. Dockerfile中的EXPOSE、docker run --expose、docker run -p之间的区别 Dockerfile的EXPOSE相当于docker run --expose,提供container之间的端口访问。docker run -p允许container外部主机访问container的端口
标签: CentOS Docker
共有 人打赏支持
fengyexjtu
粉丝 5
博文 45
码字总数 17034
×
fengyexjtu
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: