以macOS为例:
brew cask install docker
注意:不能使用brew install docker
,这样安装的docker不完整,不能直接使用。
可以直接下载dmg(http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/stable/Docker.dmg?crazycache=1)。注意:千万别去daocloud下载,2018年7月下载到的是2016版。。。
ArchLinux下安装Docker
pacman -S docker
systemctl start docker
sudo docker info
普通用户要想使用docker,得加入docker的group:
sudo gpasswd -a <user> docker
newgrp docker
刷新docker组(临时生效。重启系统永久生效)运行Docker:
在应用面板中直接点击Docker的图标,根据提示申请Root权限后即可运行
使用镜像加速器:
在Docker设置面板添加一个"Registry Mirror",保存配置并重启使用docker info
查看是否生效。
阿里云的镜像加速器需要注册帐号,最后得到的加速地址形如"https://si1lc6i7.mirror.aliyuncs.com""
docker
docker help
帮助docker info
Docker状态docker version
查看版本信息docker run hello-world
拉取hello-world:latest
镜像,创建并运行容器
docker images
docker image ls
列出镜像docker images --all
列出所有镜像,包括中间镜像docker search <image>
搜索镜像docker pull <image>
下载镜像docker run <image>
用镜像(不存在则尝试下载)创建容器并启动docker run -d -p 80:80 --name webserver nginx
从Nginx镜像创建并启动一个容器,起名为webserver
,后台运行,应映射80端口到本机。curl localhost
查看是否生效。docker run --rm -it centos bash
以CentOS为镜像创建容器,启动交互式终端(必须用-it
-i无反应,-t进入终端后无反应),运行命令bash
,并在命令结束后删除容器(--rm
)。docker run --name my-ubuntu -d --rm ubuntu tail -f /dev/null
启动一个Ubuntu并保持后台运行docker ps
列出运行的容器docker ps --all
列出全部容器,包括已停止运行的docker container rm $(docker ps -a -q)
删除所有容器docker container rename <old> <new>
重命名docker exec <container> <command>
在容器中执行命令docker exec -it <container> bash
在容器中启动bash并进入交互docker diff <container>
查看容器变化app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
Dockerfile
FROM centos
RUN yum install -y https://centos7.iuscommunity.org/ius-release.rpm \
&& yum install -y python36u-pip \
&& cd /usr/bin \
&& ln -s python3.6 python3 \
&& ln -s pip3.6 pip3 \
&& pip3 install flask \
&& yum clean all
WORKDIR /root/app
COPY app.py .
ENV LC_ALL=en_US.utf8 FLASK_ENV=development
CMD flask run --host 0.0.0.0
2. 运行镜像
docker run -it --rm -p 5000:5000 mycent
3. 检验是否运行
curl localhost:5000`
注意:
Dockerfile
FROM centos
RUN yum install -y https://centos7.iuscommunity.org/ius-release.rpm \
&& yum install -y python36u-pip \
&& cd /usr/bin \
&& ln -s python3.6 python3 \
&& ln -s pip3.6 pip3 \
&& pip3 install flask \
&& yum clean all
ENV LC_ALL=en_US.utf8 FLASK_ENV=development
CMD cd /root/app && flask run --host 0.0.0.0
运行:docker run --mount type=bind,source=/home/bj/temp/docker/mycent,target=/root/app -it --rm -p 5000:5000 mycent
Dockerfile
FROM alpine
RUN apk update && apk add python3
COPY app /root/app
WORKDIR /root/app
RUN pip3 install -r requirements.txt
ENV FLASK_ENV=development
CMD cd /root/app && flask run --host 0.0.0.0