docker安装
Ubuntu 14.04 16.04 (使用apt-get进行安装)
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
--------------------------------------------------------------------------------------------------------------------------------------------------
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
# docker-ce | 17.03.1~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# docker-ce | 17.03.0~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]
常用Dockerfile
ubuntu14.04+lamp
FROM ubuntu:14.04
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# Update sources
RUN apt-get update -y
# install http
RUN apt-get install -y apache2
RUN mkdir -p /var/lock/apache2 /var/run/apache2
RUN sed -i '$a\ServerName 127.0.0.1' /etc/apache2/apache2.conf
RUN apt-get install -y mysql-client mysql-server
RUN apt-get install -y mysql-client mysql-server
RUN service mysql start &&\
mysqladmin -u root password root &&\
mysql -u root -proot -e "create database mydata;" &&\
mysql -u root -proot mydata < /etc/mydata.sql
RUN apt-get install -y software-properties-common
RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
RUN apt-get update && apt-get install -y --no-install-recommends \
libapache2-mod-php5.6 \
php5.6 \
php5.6-cli \
php5.6-curl \
php5.6-dev \
php5.6-gd \
php5.6-imap \
php5.6-mysql \
&& apt-get clean \
&& rm -fr /var/lib/apt/lists/*
COPY ./start.sh /start.sh
RUN chmod +x /start.sh
EXPOSE 80
CMD ["/start.sh"]
start.sh
#!/bin/bash
/etc/init.d/apache2 restart
service mysql restart
/usr/bin/tail -f /dev/null #或者/bin/bash
命令及用法
docker build -it test_tag . //-it是为了给容易命名新的tag,.为dockerfile的路径
docker run -itdp 80:80 test_tag //-it是容器的tag,-d是后台运行,-p是端口映射
docker stop 容器id
进入容器
docker exec -it 容器id /bin/bash //这里使用/bin/bash进入容器
docker exec -it 容器id sh // /bin/bash用不了的情况可以使用该命令进入容器
删除容器或镜像
docker rm 容器id
docker rmi 镜像id
docker stop `docker ps -aq` //关闭所有容器
docker rm `docker ps -aq` //删除所有容器
docker rmi `docker images` //删除所有镜像,只有先执行前两个命令才可用第三个命令,不然会报错
重命名镜像
docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)
查看容器ip
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID>
或
docker inspect <container id>
或
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id