Github上的一个小项目

git clone <https://github.com/dockersamples/linux_tweet_app>

https://hub.docker.com/注册Docker,用户名就是Docker ID

栗子: 运行一个mysql 容器

docker container run \\
 --detach \\
 --name mydb \\
 -e MYSQL_ROOT_PASSWORD=12345 \\
 mysql:latest

用户名是 root,密码是 12345

docker exec -it mydb \\
 mysql --user=root --password=$MYSQL_ROOT_PASSWORD --version

查看Mysql容器中的mysql版本

Docker打包运行程序

Dockerfile的内容

FROM nginx:latest

COPY index.html /usr/share/nginx/html
COPY linux.png /usr/share/nginx/html

EXPOSE 80 443     

CMD ["nginx", "-g", "daemon off;"]

基础镜像:nginx:latest 暴露端口:80、443

使用Dockerfile创建Image: docker image build --tag $DOCKERID/linux_tweet_app:1.0 . (末尾有个点,$DOCKEROD 是用户的Dockerhub用户名)

运行该镜像

docker container run \\
 --detach \\
 --publish 80:80 \\
 --name linux_tweet_app \\
 $DOCKERID/linux_tweet_app:1.0     # --detach 缩写 -d,--public缩写 -p(服务器:容器)

不关闭强制删除(包括了关闭),建议先 stoprm

docker container rm --force linux_tweet_app

修改本地文件并随时同步到容器中的应用程序

https://docs.docker.com/engine/admin/volumes/bind-mounts/

栗子:

docker container run \\
-d \\
-p 80:80 \\
--name linux_tweet_app \\
--mount type=bind,source="$(pwd)",target=/usr/share/nginx/html \\
$DOCKERID/linux_tweet_app:1.0